select count(id) as count1,name from q1 where (select count(id) from q1
查询 对id进行统计起别名count1和name字段在表q1条件是q1表的id统计的name字段等于q1表的name字段并且>2按name分组并按id降序排列
as m where m.name=q1.name)>2 group by name order by count(id) desc
这里用了子查询
不过这个SQL语句个人是越看越别扭,同一个表做子查询是一个问题,一般子查询都是不同的表但有关系的表进行子查询。
问题二在于m.name=q1.name这个条件好像是句废代码,因为本身子查询里的表是q1外面的那个表也是q1都是同一个表name肯定相等,为何还要做条件来限制?
另一个问题是count(id) desc这种写法个人是极为少见,count是统计函数统计后只有一个结果对这一个结果进行排序?没有必要吧?