pgSQL查询错误

时间:2010-05-14 17:27:54

标签: sql postgresql

我尝试使用此查询:

“SELECT * FROM guests WHERE event_id =”。$ id。“GROUP BY member_id;”

我收到了这个错误:

错误:列“guests.id”必须出现在GROUP BY子句中或用于聚合函数

任何人都可以解释我如何解决这个问题吗?

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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;