以前理解的group by 字句是不返回重复的结果的,确实是这样
测试如下
table : tool1
数据:
id name
4 ccc
2 aaa
3 bbb
1 aaa
SQL: select name from tool1 group by name having count(name)>1 返回的结果为 aaa。 毫无疑问这是正确的结果。
如果 SQL:select name from tool1 group by name
返回的结果为
aaa
bbb
ccc
就这三条数据 ,说明已经按照name分组了。这三组是分组的名字,但并不代表分组后每组的数据
其实aaa这一组有两条数据,是重复的都是aaa. 但在这里只显示了一条aaa,用于表示分组的名字 。
这样就理解了为什么having count(name)>1 还有数据
总结:group by 分组的名字是不重复的,但是每组里面的数据是有可能有重复的。