面试中需要手撕的SQL题汇总(持续更新中)

  1. 查看数据库某个字段是否有重复的值
    巧妙使用group by进行分组,然后having里面聚合语句count(*)>1针对group by分好的组进一步筛选。
select a,ANY_VALUE(b),ANY_VALUE(c) //找a字段上的重复值
from index_jxz_table
group by a
having count(*)>1;

其中ANY_VALUE是因为mysql5.7版本以上是默认开启了 only_full_group_by 严格模式,出现在select后的字段(除了聚合的字段以外SUM,AVG,MAX,MIN)都必须要在group中。解决方案参考的这里

猜你喜欢

转载自blog.csdn.net/qq_44036439/article/details/129325792