📚SQL小技巧✨ distinct去重多个字段?试试窗口函数!💪
在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`的数据即可实现去重。💡
窗口函数不仅高效,还能处理复杂场景。快来试试吧!🚀
免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。