gpt4 book ai didi

MySQL:根据另一个列值在列中选择唯一值

转载 作者:行者123 更新时间:2023-11-29 05:12:30 24 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

您如何计算名字出现的次数?这样做时,它会计算 ip 在名称中出现的次数,但我想要相反的结果。

SELECT MIN(id), COUNT(name), ip, name FROM yourTable GROUP BY ip, name

最佳答案

您从未提到在重复 ip-name 对的情况下您要如何确定要保留的记录。但是,根据您的示例输出,您似乎保留了具有最小 id 值的记录。在这种情况下,我们可以在分组时只取 MIN(id) 以获得所需的结果:

SELECT MIN(id), ip, name
FROM yourTable
GROUP BY ip, name

点击下面的链接获取正在运行的演示:

SQLFiddle

关于MySQL:根据另一个列值在列中选择唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37463021/

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