SQL进阶-4-如何查找重复行数据
有时候数据库中表的数据可能存在重复的情况,如何从表中找出重复的数据呢?本文中提到两种方式:
-
使用group by + 临时表
-
使用group by + having
需求
根据价格price找出相同数据的行记录
方式1-临时表实现
- 先统计每个price出现的次数,次数大于1则肯定是重复的
- 将上面的结果看做是一个临时表,从临时表中直接取出重复的行记录
从原始数据中看出来只有价格50和100具有重复值
方式2-使用having
1 | mysql> select price,count(*) |
重复出现n次的数据
1 | mysql> select price, count(*) |
需求-提取重复行的全部数据
1 | select p.id, p.price, p.name |
SQL语句执行顺序
- select
- from
- where
- group by
- having
- order by(desc是降序)