我有一个包含三列的表,
| User_id (INT) | CountryCode (VARCHAR) | channel_accessed (VARCHAR) |
这里没有主键,因此所有列都可以重复。
我想编写一个返回Top国家名称&的SQL查询有相应的计数w.r.t唯一的User_id
尝试了这个Using group by on multiple columns,但这对我没什么帮助。
示例数据:
| User_id (INT) | CountryCode (VARCHAR) | channel_accessed (VARCHAR) |
1 US ARY
2 CA ARY
3 CA MTV
2 CA HUMTV
4 US Tensports
5 US Star Sports
2 CA PTV
2 CA QTV
2 CA NATGEO
预期结果:美国,因为它拥有更多独特用户。
答案 0 :(得分:0)
试试这个:
select CountryCode
from yourtable
group by CountryCode
order by count(distinct User_id) desc
limit 1
答案 1 :(得分:-1)
如果channel_accessed
列并不重要,那么您可以尝试
SELECT CountryCode, MAX(user_count)
FROM (SELECT CountryCode,
COUNT(DISTINCT(user_id)) as user_count
FROM table_name
GROUP BY CountryCode)