2012-04-15 127 views
0

我已经整理像这样的表:MySQL查询:选择最

id tag account 
0 sport  123 
1 game  123 
2 sport  123 
3 game  234 
4 sport  234 
5 game  234 

是否有一种方式来获得与标签运动的所有行和排序它们由哪个帐户中有最多的元素?我觉得它应该很简单。其实,我想要的是独特的账户,哪个人的体育项目最多?我会很感激我能得到的任何帮助。

谢谢!

回答

2

这将让你你“其实”想:

其实,我要的是哪一个具有最多的元素体育

select account from table 
where tag = 'sport' 
group by account 
order by count(*) desc 
+1

优秀的,我知道我一直在寻找通过和组通过使用顺序,只是不知道如何做到这一点。谢谢! – NSchulze 2012-04-15 22:57:16

1

这里有一个排序的不同账户方法来做到这一点。

 
SELECT account, COUNT(account) AS 'c' 
FROM sports 
WHERE tag = 'sport' 
GROUP BY account 
ORDER BY c DESC; 
+0

c''应该没有引号:''c' – 2012-04-15 22:23:09

+0

@ypercube现在不能试用它,但我很确定,没关系。尽管我也不会使用引号 – fancyPants 2012-04-15 22:57:53

+0

@tombom:你说得对,它可能在MySQL中起作用。这并不能正确使用,虽然:) – 2012-04-15 23:44:38