Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.659 pregleda

Najnovija ↓

Interesantan upit v2 03.03.2007. u 10:25 · pre 239 meseci #1
Zdravo,

Dakle, tabela je:

Code:
ID          | Tekst          | Posiljaoc              
1           | Ovo je neka    | 09200                 
2           | Kako ste       | 09333                 
3           | poruka!        | 09200                 
4           | Nebo je plavo  | 09646
5           | Neka recenica  | 06333
6           | dame i gosp?   | 09333


ID - auto inkrement.
Tekst - varchar
Posiljaoc - varchar

Trebam napisati query koji ce da vrati slijedeci rezultat:

Code:
ID          | Tekst          | Posiljaoc              
1           | Ovo je neka    | 09200                 
3           | poruka!        | 09200                 
2           | Kako ste       | 09333                 
6           | dame i gosp?   | 09333
4           | Nebo je plavo  | 09646
5           | Neka recenica  | 06333


Znaci, ORDER BY ID ASC je apsolutno neophodan. Ne znam kako da u tom rezultatu "poredam" jos rezultate po posiljaocu, znaci ako u tom rezultatu imaju dvije poruke (Tekst) od istog posiljaoca da dodju jedna iza druge.

Hvala unaprijed.
Re: Interesantan upit v2 03.03.2007. u 10:56 · pre 239 meseci #2
Code:
SELECT 
...
ORDER BY posiljaoc, id;
Potpis
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
Re: Interesantan upit v2 03.03.2007. u 11:11 · pre 239 meseci #3
Nazalost, nece moci.

U tom slucaju, pri vrhu rezultata dobicu poruke koje bi trebao dobiti poslije oni sa manjim ID-om. Znaci, prvo ID pa onda nekako da u tom rezultatu dobijem ih i po tome sortiram ili bolje reci grupisem, ako me razumijes...
Re: Interesantan upit v2 05.03.2007. u 07:51 · pre 239 meseci #4
Ako su ti vrednosti u koloni ID jedinstvene nema smisla vrsiti grupisanje po toj koloni. Meni nisi jasan. Dejanovo resenje ti je dalo upravo ono sto si trazio u svom primeru. Daj primer u kojem ti Dejanovo resenje ne odgovara.
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Interesantan upit v2 15.03.2007. u 15:41 · pre 238 meseci #5
Nije Dejanovo resenje dobro jer se te grupe nece pojavljivati po hronoloskoj vrednosti (kada se gleda prvi rezultat iz svake grupe), konkretno vratice grupu 06333 na prvom mestu a ne na poslednjem. Ovo je zanimljivo pitanje, ne znam MySql ali resenje u oracle je lako jer postoji analiticka funkcija FIRST_VALUE()
Re: Interesantan upit v2 15.03.2007. u 20:14 · pre 238 meseci #6
E sad m je napokon jasno sta treba :)

Saljem dva upita koja rade isto. Nadam se da barem jedan radi na MySQL-u.

Prvi nacin
Code:

SELECT p.id, p.tekst, p.posiljaoc
  FROM poruke AS p
       INNER JOIN
       (SELECT posiljaoc, MIN(id) AS min_id
          FROM poruke
         GROUP BY posiljaoc
       ) AS pp
       ON p.posiljaoc = pp.posiljaoc
 ORDER BY pp.min_id, p.id

Drugi nacin
Code:

SELECT p.id, p.tekst, p.posiljaoc, MIN(pp.id)
  FROM poruke AS p
       INNER JOIN
       poruke AS pp
       ON p.posiljaoc = pp.posiljaoc
 GROUP BY p.id, p.tekst, p.posiljaoc
 ORDER BY 4, 1
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: Interesantan upit v2 16.03.2007. u 14:51 · pre 238 meseci #7
Oj pa ovo radi!! Moram malo istestirati, cujemo se ako ne bude radilo :)

Puno hvala!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme