2011-06-20 58 views
0

我必須使用名爲「類別」和「用戶」的表格 我在某些類別下插入用戶表中的記錄, 現在我想要最大用戶註冊的訂單類別。根據最高記錄獲取最高排名

樣品表;

類別:

CategoryId Name 
1   Category1 
2   Category2 
3   Category3 

用戶:

UserId  Name  CategoryId 
1   User1   1 
2   User2   2 
3   User3   2 
4   User4   2 
5   User5   3 

現在,在上面的例子中的CategoryId 2包含3個用戶 ,所以我想的CategoryId 2頂部名稱。

感謝名單

回答

2
SELECT 
    * 
FROM 
    Category 
ORDER BY 
    (SELECT COUNT(*) FROM Users WHERE CategoryId = Category.CategoryId) DESC 


或者,一些perfer這一點,雖然我不...

SELECT 
    Category.CategoryId, 
    Category.Name 
FROM 
    Category 
LEFT JOIN 
    Users 
    ON Users.CategoryId = Category.CategoryId 
GROUP BY 
    Category.CategoryId, 
    Category.Name 
ORDER BY 
    COUNT(Users.CategoryID) DESC 
0
select count(CategoryId) as rank, CategoryId 
from users group by Categoryid order by rank desc 
+1

排名並不靠前的類別沒有用戶 – MatBailie

+0

+1:好點。 –