MySQL:如果分组结果只包含一行,则从分组结果中删除行
选择数据时,我可以通过运行以下命令显示使用MySQL:如果分组结果只包含一行,则从分组结果中删除行,mysql,Mysql,选择数据时,我可以通过运行以下命令显示使用groupby对多少行进行分组: SELECT id, created, COUNT(id) `count` FROM table GROUP BY id LIMIT 0,30 count字段可轻松输出受分组影响的行数。在MySQL中,是否可以自动不包括任何只有count值1的行?是。您可以使用HAVING来限制聚合函数的结果,如COUNT(MAX、MIN、SUM等) 你应该考虑使用具有< /Cord>子句,这允许你在分组完成后添加条件
groupby
对多少行进行分组:
SELECT id, created, COUNT(id) `count` FROM table
GROUP BY id
LIMIT 0,30
count
字段可轻松输出受分组影响的行数。在MySQL中,是否可以自动不包括任何只有count
值1
的行?是。您可以使用HAVING
来限制聚合函数的结果,如COUNT(MAX、MIN、SUM等)
你应该考虑使用<代码>具有< /Cord>子句,这允许你在分组完成后添加条件。
SELECT id, created, COUNT(id) cnt FROM table
GROUP BY id
HAVING cnt > 1
LIMIT 0,30
另一件需要提及的事情是,分组可能不正确。如果按id
分组,并选择id,created
,则created
的值不确定。如果它们不同,MySQL将为给定的id
选择其中任何一个。您可能也对按该字段分组或应用聚合函数感兴趣(例如:max(created)
)
第二件需要提及的事情是,COUNT(id)
不会计算行的数量,而是计算id不为null的行的数量。如果id
从不为空,则其结果将与执行count(*)
显示手册并查找
... HAVING COUNT(id) > 1
如果id具有主键/唯一键,则为。。GROUPBY id是非常冗余的无用(基于缺少的create table语句)…+1 Mosty Mostacho需要提及的是非聚合列“created”@enchance你真的应该读一下会有什么影响,我同意你关于created
和使用COUNT(id)
的观点,但这只是我用来澄清问题的一个示例查询。@enchance是的,检查一下。但下一次创建一个新问题:)
... HAVING COUNT(id) > 1