我必须将表命名为“Category”和“Users” 我在某些类别下的用户表中插入记录, 现在我想要最大用户注册的订单类别。
样本表;
类别:
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名称放在最上面。
感谢名单
答案 0 :(得分:2)
SELECT
*
FROM
Category
ORDER BY
(SELECT COUNT(*) FROM Users WHERE CategoryId = Category.CategoryId) DESC
或者,正如一些人更喜欢这个,虽然我没有......
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
答案 1 :(得分:0)
select count(CategoryId) as rank, CategoryId
from users group by Categoryid order by rank desc