首页 > 精选要闻 > 精选百科 >

📚SQL小技巧✨ distinct去重多个字段?试试窗口函数!💪

发布时间:2025-03-24 10:57:14来源:网易

在SQL查询中,我们常遇到需要对多个字段进行去重的需求,比如筛选出客户表中唯一组合的姓名和电话号码。此时,单纯使用`DISTINCT`可能显得力不从心。别担心!窗口函数能帮你轻松搞定!👀

首先,理解问题:假设我们有客户表`customers`,包含`name`和`phone`两个关键字段,希望找出所有唯一的组合。传统方法是用`GROUP BY`,但窗口函数更灵活!🔍

解决方案如下:

```sql

SELECT DISTINCT name, phone

FROM (

SELECT name, phone,

ROW_NUMBER() OVER(PARTITION BY name, phone ORDER BY name) AS rn

FROM customers

) t

WHERE rn = 1;

```

这里,`ROW_NUMBER()`为每组`name`和`phone`分配序号,最后仅保留`rn=1`的数据即可实现去重。💡

窗口函数不仅高效,还能处理复杂场景。快来试试吧!🚀

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。