Mysql,找到价值观,最多

时间:2017-05-21 16:19:47

标签: mysql sql

我有几张桌子。我正在寻找表中记录最多的值/人。如果还有更多,那么应该选择所有这些。

那件事我有2张桌子,所以我应该从价值最多的人那里选择信息。和多少。

我的测试看起来像这样

select*, tbl1.Value, count (*) as atn
from Tbl1, Tbl1
group by Value
order by antall Atn


select*
from Tbl1 left outer join tbl2
on tbl1.value= tbl2.value;

让我们说这是结果。

意思是

Value-Value-value-atn
--------------------
22    name  name  2
--------------------

这个人中有10个人的表中记录最多,而Name值来自另一个表。

1 个答案:

答案 0 :(得分:0)

请尝试以下方法......

SELECT Value,
       atn
FROM ( SELECT Value,
              COUNT( * ) AS atn
       FROM Tbl1
       GROUP BY Value
     ) AS atnFinder
GROUP BY Value,
         atn
HAVING atn = MAX( atn )
ORDER BY Value;

此语句使用子查询atnFinder来首先确定与每个Value对应的记录数。然后,每个返回的字段对此子查询的结果进行分组,使每个返回的记录也成为自己的组。然后,它使用HAVING子句返回最大值为atn的每个组/记录。

如果您有任何问题或意见,请随时发表评论。