我正在使用一个看起来像这样的表:
userID, eventDate, eventName
1 2019-01-01 buySoup
2 2019-01-01 buyEggs
2 2019-01-03 buyMilk
2 2019-01-04 buyMilk
3 2019-01-02 buyBread
3 2019-01-03 buyBread
Run Code Online (Sandbox Code Playgroud)
我当前的查询是:
userID, eventDate, eventName
1 2019-01-01 buySoup
2 2019-01-01 buyEggs
2 2019-01-03 buyMilk
2 2019-01-04 buyMilk
3 2019-01-02 buyBread
3 2019-01-03 buyBread
Run Code Online (Sandbox Code Playgroud)
我觉得这应该返回:
userID, firstBought
1 buySoup
2 buyEggs
3 buyBread
Run Code Online (Sandbox Code Playgroud)
相反,它给出了错误:
'错误:列“table.eventName”必须出现在 GROUP BY 子句中或在聚合函数中使用'
有没有办法获取这个值而不将其包含在按函数分组或创建子查询中?我正在使用 PostgreSQL。
如果我确实将其包含在 group by 子句中,它将返回
userID, firstBought
1 buySoup
2 buyEggs
2 buyEggs
2 buyEggs
3 buyBread
3 buyBread
Run Code Online (Sandbox Code Playgroud)
我知道我可以将其设为子查询,然后按 userID、firstBought …