微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL分组依据和COUNT

如何解决MySQL分组依据和COUNT

| 我有一个包含以下各列的表: 唯一身份 remote_ip_addr 平台 我想创建一个查询,该查询基本上只显示每个平台的每个IP地址一次,并计算有多少个不同的平台条目
SELECT platform,COUNT(platform) 
FROM fuckedapps_dm_appdl dm 
GROUP BY platform 
ORDER BY COUNT(platform) DESC
因此,例如,来自下表:
uniqueID---remote_ip_addr----platform
1           20.15.1.234       iPhone
2           20.15.1.234       iPhone
3           20.15.1.234       iPhone
4           20.15.1.234       Android
5           20.15.1.234       Android
我将得到以下结果:
platform----COUNT(platform)
iPhone          1
Android         1
现在,我得到以下信息:
platform----COUNT(platform)
iPhone          3
Android         2
因为它们都是相同的ip,所以我只想获得1个不同的值... 谢谢您的帮助。 编辑:我应该提到,还有另一个字段,称为app_id。 所以表更像是:
uniqueID---remote_ip_addr----platform---app_id
1           20.15.1.234       iPhone      23
2           20.15.1.234       iPhone      23
3           20.15.1.234       iPhone      18
4           20.15.1.234       Android     24
5           20.15.1.234       Android     25
在这种情况下,我希望结果是:
platform----COUNT(platform)
iPhone          2
Android         2
谢谢,很抱歉,因为我不认为这是相关的,现在我知道了。     

解决方法

        如果我理解正确,那么对于每个平台,都需要不同的IP地址的数量。然后,您可以使用它。注意每个(
GROUP BY
)平台的
DICTINCT remote_ip_addr
COUNT
ing:
SELECT platform,COUNT(DISTINCT remote_ip_addr) AS countDistinctIPaddresses
FROM fuckedapps_dm_appdl dm 
GROUP BY platform 
ORDER BY countDistinctIPaddresses DESC
OP的更新后。 (顺便提一下问题不是一个好习惯)。 目前尚不清楚每个平台是否需要不同的app_id:
SELECT platform,COUNT(DISTINCT app_id)
       AS cnt
FROM fuckedapps_dm_appdl dm 
GROUP BY platform 
ORDER BY cnt DESC
或每个平台的(app_id,remote_ip_addr)的不同组合:
SELECT platform,COUNT(DISTINCT app_id,remote_ip_addr)
       AS cnt
FROM fuckedapps_dm_appdl dm 
GROUP BY platform 
ORDER BY cnt DESC
取决于想要的结果是什么,请说是否还有一行:
uniqueID---remote_ip_addr----platform---app_id
6           100.30.1.40       iPhone     23
    ,        改用
COUNT(*)
SELECT platform,COUNT(*) 
FROM fuckedapps_dm_appdl dm 
GROUP BY platform 
ORDER BY COUNT(platform) DESC
    ,        您还需要按IP地址分组:
SELECT platform,COUNT(*) 
FROM fuckedapps_dm_appdl dm 
GROUP BY platform,remote_ip_addr 
ORDER BY COUNT(platform) DESC
    ,        您必须按IP地址分组才能获得不同平台的数量:
SELECT platform,COUNT(platform) 
FROM fuckedapps_dm_appdl dm 
GROUP BY remote_ip_addr 
ORDER BY COUNT(platform) DESC
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。