Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Interesantan upit v2

[es] :: MySQL :: Interesantan upit v2

[ Pregleda: 2624 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

junuzaga
ba

Član broj: 17025
Poruke: 5
*.PPPoE-5107.sa.bih.net.ba.



Profil

icon Interesantan upit v203.03.2007. u 09:25 - pre 208 meseci
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.
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Interesantan upit v203.03.2007. u 09:56 - pre 208 meseci
Code:
SELECT 
...
ORDER BY posiljaoc, id;

Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

junuzaga
ba

Član broj: 17025
Poruke: 5
*.PPPoE-5107.sa.bih.net.ba.



Profil

icon Re: Interesantan upit v203.03.2007. u 10:11 - pre 208 meseci
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...
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.dialup.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Interesantan upit v205.03.2007. u 06:51 - pre 208 meseci
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.
"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
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3654
..lecom.global-gateway.net.nz.



+3 Profil

icon Re: Interesantan upit v215.03.2007. u 14:41 - pre 208 meseci
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()
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.dialup.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Interesantan upit v215.03.2007. u 19:14 - pre 208 meseci
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

"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
 
Odgovor na temu

junuzaga
ba

Član broj: 17025
Poruke: 5
*.PPPoE-4338.sa.bih.net.ba.



Profil

icon Re: Interesantan upit v216.03.2007. u 13:51 - pre 208 meseci
Oj pa ovo radi!! Moram malo istestirati, cujemo se ako ne bude radilo :)

Puno hvala!
 
Odgovor na temu

[es] :: MySQL :: Interesantan upit v2

[ Pregleda: 2624 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.