SQL query (group by)

Vaclav Stepan w na linux.fjfi.cvut.cz
Pátek Březen 22 17:13:42 CET 2002


Dobre odpoledne,

obavam se, ze je to nejaky zkrat v me hlave, ale zasekl jsem se na nasledujicim:

Mam (typove) tabulku (PostrgreSQL 7.1.3):

 dom       | date                  | not null
 p1        | real                  | 
 p2        | real                  | 

Kazdy radek je jedno mereni. Z jednoho dne muze byt vice mereni, treba to muze
vypadat:

 2001-01-01 | 1.4  | 1.7
 2001-01-01 | 0    | 0 
 9999-01-02 | 1.4  | 1.2 

Chtel bych dotaz, ktery vyhodi ke kazdemu datu zaznam, ktery ma nejvyssi p1
(na jednu query, abych z toho mohl udelat view).

Zkusil jsem:
select dom,max(p1),p2 from pixi group by rc,dom;

Coz ovsem neprojde. Chyba:
ERROR:  Attribute pixi.p2 must be GROUPed or used in an aggregate function

Mohu udelat:
select dom,max(p1) from pixi group by rc,dom;

Ale tam nebudu mit p2. Nemohu udelat group pres p2, protoze bych dostal i 
ten druhy radek (anzto 1.7 != 0).

Prosim, jakou konstrukci se tohle udela?

Dekuju
-- 
Vaclav Stepan
w na linux.fjfi.cvut.cz


Další informace o konferenci Databases