如何编写优化SQL查询获取所有行及Name列重复计数?
解决方法:添加Name重复计数的SQL查询
没问题,这是你需要的完整SQL查询语句,它能完美保留原表所有行数据,同时给每行添加上对应Name的重复次数:
SELECT Id, Name, Department, COUNT(*) OVER (PARTITION BY Name) AS "Name repeat count" FROM your_table_name;
小说明:
- 这里用了窗口函数
COUNT(*) OVER (PARTITION BY Name),它的作用是按Name分组统计每个名字的出现次数,但不会像普通GROUP BY那样合并行,能完整保留原表的每一条记录,刚好匹配你要的输出格式。 - 记得把语句里的
your_table_name替换成你实际使用的表名哦。
预期输出验证:
执行这个查询后,得到的结果会和你想要的完全一致:
| Id | Name | Department | Name repeat count |
|---|---|---|---|
| 1 | Ojas | Soft Engineer | 2 |
| 2 | Amy | Marketing | 1 |
| 3 | Aditya | Networking | 1 |
| 4 | Riya | Admin | 2 |
| 5 | Ojas | Manager | 2 |
| 6 | Riya | Receptionist | 2 |
内容的提问来源于stack exchange,提问作者Manjay_TBAG
相关产品推荐
相关产品推荐

