【问题标题】:Use Group By without Aggregate使用没有聚合的 Group By
【发布时间】:2014-10-31 19:49:58
【问题描述】:

我有以下数据

UserId      Val   txt
100         10     A
200         25     B
100         30     GV
300         15     BHG
200         20     BGV

并想编写一个查询,为每个用户提供 min(val)

结果:

100        10      A
200        20      BGV
300        15      BHG

【问题讨论】:

  • val 字段中选择的逻辑是什么。对于UserId 200,您将20 作为val。为什么20?为什么userid100 得到txtA 而不是txtGVAGV。这一切都显得非常随意。
  • 为每个用户选择 min(val)

标签: postgresql group-by aggregate


【解决方案1】:

试试这个:

SELECT DISTINCT ON (userID) *
FROM your_table
ORDER BY userID, val

【讨论】:

  • @user3780058 你试过查询吗?它会给你你描述的结果。它将为您提供价值最低的记录。
猜你喜欢
  • 2013-12-03
  • 2021-04-20
  • 1970-01-01
  • 2014-11-22
  • 2014-12-27
  • 1970-01-01
  • 2014-08-24
  • 1970-01-01
相关资源
最近更新 更多