2016-07-19 43 views
0

我有三列的表,SQL的頂部計數(列1)w.r.t鮮明COLUMN2

| User_id (INT) | CountryCode (VARCHAR) | channel_accessed (VARCHAR) | 

有在這裏沒有主鍵,所以重複是可能的所有列。

我想寫一個返回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

@a_horse_with_no_name MySql的 – user3602022

+2

添加一些樣本的數據和預期的結果。 – Blank

回答

0

試試這個:

select CountryCode 
from yourtable 
group by CountryCode 
order by count(distinct User_id) desc 
limit 1 

SQLFiddle Demo

-1

如果channel_accessed列不要緊,那麼你可以嘗試

SELECT CountryCode, MAX(user_count) 
FROM (SELECT CountryCode, 
      COUNT(DISTINCT(user_id)) as user_count 
    FROM table_name 
    GROUP BY CountryCode) 
+0

您可以在聚合函數上使用聚合函數! – sagi