我有这样的疑问:

SELECT
"EventReadingListItem"."id"
, "EventReadingListItem"."UserId"
FROM "EventReadingListItems" AS "EventReadingListItem"
group by "EventReadingListItem"."EventId";

当我运行它时,我得到了错误
Column "EventReadingListItem"."id" must appear in the GROUP BY clause or be used in an aggregate function.

为什么?我读过类似的问题,但我真的不明白为什么这个简单的分组方式不起作用。是因为group by中的字段还不称为“EventReadingListItem”吗?

最佳答案

所以,根据你的评论,这应该对你有用。
为每个具有最小/minEventId值的id提供唯一行:

select DISTINCT ON (EventId) EventId, id, UserId
from EventReadingListItems
order by EventId, id

10-05 23:06