gpt4 book ai didi

sql - 按同一表中的两个值分组

转载 作者:行者123 更新时间:2023-12-03 18:50:38 25 4
gpt4 key购买 nike

我有一张表格

Ship_type | userid | Message


这些列都不是唯一的。
我想计算每种船型有多少个(唯一)用户ID,从而找出哪种船型最受欢迎。

例:

Ship_type     | userid| Message
-------------- ------- ----------
Sailboat | 34241 | hello
Sailboat | 34241 | hi
Sailboat | 34241 | I'm on a boat!
Fishingvessel | 31245 | yo
Fishingvessel | 98435 | hi there


在这里,我们看到有两个不同的渔船和一个帆船。

如果我执行以下查询:

 select ship_type, count(ship_type) FROM db1.MessageType5 GROUP BY ship_type ORDER BY count(ship_type) ASC;


我懂了

Sailboat      | 3
Fishingvessel | 2


这是错误的-因为它计算属于每个ship_type的消息数。

所需结果:

Fishingvessel | 2
Sailboat | 1

最佳答案

您必须COUNT DISTINCT用户ID(如果需要提供的结果,则必须ORDER BY ... DESC):

SELECT ship_type, COUNT(DISTINCT userid) as cnt
FROM db1.MessageType5
GROUP BY ship_type
ORDER BY cnt DESC



请参见 this fiddle

关于sql - 按同一表中的两个值分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27131597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com