gpt4 book ai didi

MySQL:使用查询对最流行的名称进行排序,但特定于每个 IP

转载 作者:行者123 更新时间:2023-11-29 01:52:36 26 4
gpt4 key购买 nike

我有一个这样设置的表:

id    |      ip      |   name    
---------------------------------
1 | 54.34.32.222 | John
2 | 23.44.64.843 | Rick
3 | 54.34.32.222 | John
4 | 23.44.64.843 | John
5 | 14.432.45.45 | Lisa
6 | 54.34.32.222 | Lisa
7 | 14.432.45.45 | Lisa

我想查询和排序最流行的名字。我不想为每个名称包含一个以上的 IP。

例如,“54.34.32.222”对 John 出现了两次,所以我只想抓取第一行。但是 Lisa 也出现了“54.34.32.222”,所以我也想获取该 IP。

结果应该是这样的:

id    |      ip      |   name    
---------------------------------
1 | 54.34.32.222 | John
2 | 23.44.64.843 | Rick
4 | 23.44.64.843 | John
5 | 14.432.45.45 | Lisa
6 | 54.34.32.222 | Lisa

Lisa 和 John 将是最受欢迎的名字,并且应该出现在最前面,其次是 Rick。

我希望我的最终查询返回如下内容:

name     |  count  |
--------------------
Lisa | 2 |
John | 2 |
Rick | 1 |

是否可以在单个查询中执行此操作?甚至两个?非常感谢您的帮助!

最佳答案

您可以根据每个名称的不同 ip 的数量来排序。如果计数相同,您可以按名称或其他列排序。

select name, count(distinct ip) as cnt
from tablename
group by name
order by cnt desc, name

关于MySQL:使用查询对最流行的名称进行排序,但特定于每个 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37473301/

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