我在mysql db中有一个表,我需要从中选择选择行,这些行重复的次数超过给定的次数,但是结果不应合并(如果该行在表中是五次,我希望它在结果中出现五次)
表格包含三栏:编号,名称,姓氏
我已经尝试过像这样分组:
SELECT t.Name, t.Surname FROM table t
WHERE t.Id IN (
SELECT tt.Id FROM table tt
GROUP BY tt.Name, tt.Surname
HAVING count(*) > 10
)
我知道我的错误在哪里-在此子查询中,因为据我了解,每个唯一的名称+姓氏仅返回一个ID,但我不知道如何正确实现所需的行为。
一种解决方法是将原始表与聚合查询联接:
SELECT t.*
FROM t
JOIN (SELECT name, surname, COUNT(*)
FROM t
GROUP BY name, surname
HAVING COUNT(*) > 10) aggr ON t.name = aggr.name AND
t.surname = aggr.surname
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句