2012-09-22 98 views
4

假設我有一個名爲Domain的MySQL表。如何從該表中找到最受歡迎的電子郵件域名。直接我想查找最大數量的所有行。選擇多個最大行

Domain  
gmail.com  
gmail.com  
gmail.com  
yahoo.com  
yahoo.com  
yahoo.com  
rediffmail.com  
rediffmail.com 
mail.com 

我想要的輸出:

Domain  No_of_users 
gmail.com 3 
yahoo.com 3 
+1

是最常用的記錄。所以gmail和雅虎都是3次,但不是rediffmail,因爲它用了不到3次。 – GolezTrol

+0

我不想使用限制。 – Alonso

+0

@ user1690831,我添加了一些更多的示例數據,以阻止正在發生的混淆... – Ben

回答

2
select 
    x.Domain, 
    x.No_of_users 
from 
    (select 
    d.Domain, 
    count(d.Domain) as No_of_users 
    from 
    Domain d 
    group by 
    d.Domain) x 
where 
    x.No_of_users = 
    (select 
     max(x2.No_of_users) 
    from 
     (select 
     d2.Domain, 
     count(d2.Domain) as No_of_users 
     from 
     Domain d2 
     group by 
     d2.Domain) x2) 
+0

superb.Worked for me..Thanks。謝謝。 – Alonso

+0

太複雜了。 @ Marlin的答案沒有太多的子查詢。 –

2
SELECT Domain, count(id) 
FROM Domain 
GROUP BY Domain.Domain 
HAVING count(id) = (SELECT count(id) FROM Domain D GROUP BY D.Domain ORDER BY count(id) DESC LIMIT 1)