MySQL:如果它仅分组1行,则从GROUP BY结果中删除行

时间:2013-11-30 19:14:24

标签: mysql

选择数据时,我可以通过运行来显示使用GROUP BY分组的行数:

SELECT id, created, COUNT(id) `count` FROM table
    GROUP BY id
    LIMIT 0,30

count字段可以轻松输出GROUP BY影响的行数。在MySQL中,是否可以自动包含count1的任何行?

3 个答案:

答案 0 :(得分:1)

您应该考虑使用HAVING条款,您可以添加条件分组已经完成了。

SELECT id, created, COUNT(id) cnt FROM table
GROUP BY id
HAVING cnt > 1
LIMIT 0,30

另外要提到的是分组可能不正确。如果按id和{选择{1}}然后id, created是不确定的值。如果它们不同,MySQL将为给定的created选择其中任何一个。你可能有兴趣在由字段分组太或施加一个聚集函数(例如:id)。

提及的第二个的事情是,max(created)不会计算的行的数量,而是行的量的具有COUNT(id)不为空。如果id是从来没有空然后这将导致相同的值做id

答案 1 :(得分:0)

是。您可以使用HAVING来限制聚合函数的结果,如COUNT(MAX,MIN,SUM等)。

SELECT id, created, COUNT(id) `count` 
FROM table
GROUP BY id
HAVING COUNT(id) > 1
LIMIT 0,30

答案 2 :(得分:0)

显示手册并找到HAVING

... HAVING COUNT(id) > 1

http://dev.mysql.com/doc/refman/5.1/de/select.htmlhavinh