SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
23. 02. 2006. | #1 |
Predrag Supurović
Grand Master
Datum učlanjenja: 24.01.2006
Lokacija: Užice
Poruke: 791
Hvala: 3
200 "Hvala" u 12 poruka
|
Nezgodan upit
Imam jedan problem ali nikako da ga namikarim.
Imam tabelu: t1 (id, value, desc) Value je unique, dakle ne mogu biti dva sloga sa istim value. Iz ove treba da napravim: t2 (id, value_min, value_max, desc_for_min, desc_for_max) Dosao sam do: Kôd:
SELECT id, MIN(value) as value_min, MAX(value) as value_max, FROM t1 GROUP BY id ORDER BY id Znam kako da resim sa dva SELECT-a ali bih ja hteo jednim Hitno je ljudi...
__________________
Peđina beležnica (blog) - www.uzice.net - wireless.uzice.net - www.vokabular.org - www.vodic.net - forum.uzice.net |
23. 02. 2006. | #2 |
Dejan Katašić
Wrote a book
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
|
Joj kako me zbunjuješ - id ti je strani ključ u T1, zar ne? A primarni ključ je u stvari value. Inače nema smisla da tražiš minimume i maksimume od value po id. ...
Trebalo bi da može sa subselektima da se to odradi, ali sam prilično zarđao po tom pitanju ;-) - glupo mi je da lupam sad ... ali verovatno hoću :-D |
24. 02. 2006. | #3 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
... ja kazem:
Jel bi sad znao? Da kompletiram resenje: Kôd:
INSERT `t2` (id, value_min, value_max, desc_for_min, desc_for_max) SELECT id, MIN(value) as value_min, MAX(value) as value_max, 'description min' as desc_for_min, 'description max' as desc_for_max FROM t1 GROUP BY id ORDER BY id [edit]Napomena: gornji kod je sve jedan query, da se neko ne zbuni [/edit]
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams Poslednja izmena od zextra : 24. 02. 2006. u 02:04. |
24. 02. 2006. | #4 | |||
Predrag Supurović
Grand Master
Datum učlanjenja: 24.01.2006
Lokacija: Užice
Poruke: 791
Hvala: 3
200 "Hvala" u 12 poruka
|
Citat:
Citat:
Evo kako sam resio stvar sa pomocnom tabelom: Citat:
__________________
Peđina beležnica (blog) - www.uzice.net - wireless.uzice.net - www.vokabular.org - www.vodic.net - forum.uzice.net Poslednja izmena od Pedja : 24. 02. 2006. u 02:19. |
|||
24. 02. 2006. | #5 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
[edit]Eve ga.. Prethodno sam mislio da hoces proizvoljan komentar za min i max vrednosti, lol [/edit]
mysql> select * from t1 order by id, value; Kôd:
SELECT q1.id AS 'id', q1.min AS 'value_min', q2.max AS 'value_max', s1.descr AS 'desc_for_min', s2.descr AS 'desc_for_max' FROM `t1` s1, `t1` s2, ( SELECT id, min(value) AS 'min' FROM `t1` GROUP BY id ORDER BY id ) q1, ( SELECT id, max(value) AS 'max' FROM `t1` GROUP BY id ORDER BY id ) q2 WHERE s1.value = q1.min AND s2.value = q2.max AND q1.id = q2.id
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams Poslednja izmena od zextra : 24. 02. 2006. u 02:55. |
24. 02. 2006. | #6 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
Off Topic: postovano greskom, moze li remove?
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams |
24. 02. 2006. | #7 |
Goran Pilipović
Sir Write-a-Lot
|
Ja mislim da je ovde "skuplja dara nego mera" (ili kako vec bese... )
2 simple querija bi zavrsila posao jednostavnije nego sve predlozeno.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
24. 02. 2006. | #8 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
Moze li primer?
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams |
24. 02. 2006. | #9 | |
Predrag Supurović
Grand Master
Datum učlanjenja: 24.01.2006
Lokacija: Užice
Poruke: 791
Hvala: 3
200 "Hvala" u 12 poruka
|
Citat:
__________________
Peđina beležnica (blog) - www.uzice.net - wireless.uzice.net - www.vokabular.org - www.vodic.net - forum.uzice.net |
|
24. 02. 2006. | #10 |
old school
Professional
|
@Pedja: Ono rjesenje sa temp tabelom ce ti biti dosta sporije, nego da radis sa subselectima... Izbjegavaj to kad god mozes...
Inace, pokusao sam i ja da sklepam odgovarajuci upit, ali sam dosao do slicnog rjesenja kao zextra: Kôd:
select t1.id, t2.id, t1.value, t2.value, t1.description, t2.description from test_dejan t1, test_dejan t2, (select min(value) min_value, max(value) max_value from test_dejan group by id) sub where t1.id = t2.id and t1.value = sub.min_value and t2.value = sub.max_value Prvo je izlistan rezultat moga upita, a potom rezultat upita, kojeg je postavio zextra. Kôd:
Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop SELECT STATEMENT Optimizer Mode=ALL_ROWS 1 11.0246977930899 HASH JOIN 1 114 11.0246977930899 HASH JOIN 1 70 7.51653332072425 TABLE ACCESS FULL ONOPER.TEST_DEJAN 7 308 3.00797875329891 VIEW 7 182 4.00817220464087 SORT GROUP BY 7 182 4.00817220464087 TABLE ACCESS FULL ONOPER.TEST_DEJAN 7 182 3.00797875329891 TABLE ACCESS FULL ONOPER.TEST_DEJAN 7 308 3.00797875329891 Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop SELECT STATEMENT Optimizer Mode=ALL_ROWS 7 15.533449004233 HASH JOIN 7 798 15.533449004233 HASH JOIN 7 581 12.0250878881496 HASH JOIN 7 399 7.51653332072425 TABLE ACCESS FULL ONOPER.TEST_DEJAN 7 217 3.00797875329891 VIEW 7 182 4.00817220464087 SORT GROUP BY 7 182 4.00817220464087 TABLE ACCESS FULL ONOPER.TEST_DEJAN 7 182 3.00797875329891 VIEW 7 182 4.00817220464087 SORT GROUP BY 7 182 4.00817220464087 TABLE ACCESS FULL ONOPER.TEST_DEJAN 7 182 3.00797875329891 TABLE ACCESS FULL ONOPER.TEST_DEJAN 7 217 3.00797875329891 |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Složen MySQL upit | Marko Medojevic | SQL baze podataka - Sponzor: Baze-Podataka.net | 2 | 03. 11. 2008. 22:05 |
mysql upit | pele | Sva početnička pitanja | 1 | 14. 08. 2007. 06:13 |
Google, indeksiranje Flash sadržaja i nezgodan klijent... | BRATISLAV | Marketing i SEO | 20 | 22. 01. 2007. 15:59 |
Upit: daj kolonu x ako kolona2 ima vrednost x | Dzordz | SQL baze podataka - Sponzor: Baze-Podataka.net | 2 | 03. 05. 2006. 13:09 |
i opet pitanje za upit | ivanhoe | SQL baze podataka - Sponzor: Baze-Podataka.net | 16 | 24. 02. 2006. 15:40 |