2010-05-14 79 views
3

我試過使用此查詢:pgSQL查詢錯誤

「SELECT * FROM guests WHERE event_id =」。$ id。「GROUP BY member_id;」

,我得到這個錯誤:

錯誤:列「guests.id」必須出現在GROUP BY子句或聚合函數中使用

任何人都可以解釋我如何可以解決這個?

回答

1

如果不讓選擇器知道要採取的操作以及如何分組,您無法進行分組。
嘗試

SELECT guests.member_id FROM guests WHERE event_id=".$id." GROUP BY member_id; 

如果你需要從這個表對客人得到更多的信息,您需要將其添加到分組依據。

此外,它看起來像你的選擇實際上應該是

SELECT guests.id FROM guests WHERE event_id=".$id." GROUP BY id; 
0

每個中使用的列的group by查詢需要明確地叫出來(即不做SELECT * FROM ...),因爲你需要在某種集合函數(min/max/sum/avg/count/etc)中使用它們或者成爲group by子句的一部分。

例如:

SELECT instrument, detector, min(date_obs), max(date_obs) 
FROM observations 
WHERE observatory='SOHO' 
GROUP BY instrument, detector;