group by dis having count(*)=1 和 where count(*)=1 group by dis 有什么区别
时间: 2024-05-18 09:15:31 浏览: 69
sql中的 where 、group by 和 having 用法解析
这两个语句的区别在于执行的顺序和过滤的时机。
- `group by dis having count(*)=1` 先对数据按照 dis 进行分组,然后统计每组中的记录数量,最后筛选出记录数量为1的组。
- `where count(*)=1 group by dis` 先筛选出记录数量为1的记录,然后再按照 dis 进行分组。
因此,两个语句的结果可能是不同的,具体取决于数据的分布情况和筛选条件。通常情况下,第一个语句更为常用,因为它可以更有效地利用数据库的索引和优化器,提高查询效率。
阅读全文