Autor | Zpráva | ||
---|---|---|---|
tomyx007 Profil |
#1 · Zasláno: 30. 4. 2010, 09:18:58 · Upravil/a: tomyx007
Dobry den, uz si moc nevim rady. Mam tabulku "vyrobek" s atributy a hodnotami:
id_vyrobku | sleva | skupina 92131 | 20 | 4193 92131 | 20 | 3478 92131 | 20 | 3478 92334 | 22 | 4193 92334 | 22 | 4195 Potreboval bych udelat SQL dotaz (nejlepe pro PostgreSQL 8.4), ktery by mi vratil ruzne vyrobky z ruznych skupin a seradil je podle slevy. Ale id_vyrobku se nesmi ve vysledku opakovat a stejne tak se nesmi opakovat skupina ve vysledku. V tomto prikladu by vratil 2 zaznamy: id_vyrobku | sleva | skupina 92131 | 20 | 4193 92334 | 22 | 4195 |
||
mattyZEM Profil |
#2 · Zasláno: 30. 4. 2010, 09:27:10
GROUP BY id_vyrobku
|
||
tomyx007 Profil |
#3 · Zasláno: 30. 4. 2010, 09:33:07
mattyZEM:
„GROUP BY id_vyrobku“ Tím ničeho nedosáhnu, protože do GROUP BY se dávají všechny atributy v dotazuů tj. SELECT id_vyrobku, sleva,skupiny FROM obch_nakup_dne GROUP BY id_vyrobku, sleva, skupiny ORDER BY sleva DESC A tím pádem mě do výsledku přijde duplicita id_vyrobku: id_vyrobku | sleva | skupina 92131 | 20 | 4193 92131 | 20 | 3478 92334 | 22 | 4193 92334 | 22 | 4195 |
||
Kajman_ Profil * |
Tím ničeho nedosáhnu, protože do GROUP BY se dávají všechny atributy v dotazuů
Kdepak, jen se ale musíte rozhodnout, co chcete z těch více hodnot u jiných sloupců a použít na to agregační funkci. SELECT id_vyrobku, avg(sleva) sleva, max(skupiny) FROM obch_nakup_dne GROUP BY id_vyrobku ORDER BY sleva |
||
__construct Profil |
#5 · Zasláno: 30. 4. 2010, 12:15:21
SELECT DISTINCT ... |
||
Kajman_ Profil * |
#6 · Zasláno: 30. 4. 2010, 14:54:40
__construct:
To vypíše také 4 řádky, on chce 2. |
||
Časová prodleva: 14 let
|
0