我有几张桌子。我正在寻找表中记录最多的值/人。如果还有更多,那么应该选择所有这些。
那件事我有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值来自另一个表。
答案 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
的每个组/记录。
如果您有任何问题或意见,请随时发表评论。