小编Cyb*_*noe的帖子

使用 FIRST_VALUE 而不在分组依据中包含内部列

我正在使用一个看起来像这样的表:

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 …

sql postgresql vertica

8
推荐指数
1
解决办法
6448
查看次数

标签 统计

postgresql ×1

sql ×1

vertica ×1