如何用SQL查询相同描述对应的ID及描述出现次数?
实现每个ID对应描述的出现次数统计
方法1:使用窗口函数(推荐,适配大数据量场景)
利用COUNT()窗口函数按Description分组统计次数,无需额外关联操作,性能更优。假设表名为your_table,SQL语句如下:
SELECT ID, Description, COUNT(*) OVER (PARTITION BY Description) AS Occurrences FROM your_table;
说明:
PARTITION BY Description:将数据按描述内容分组COUNT(*) OVER (...):计算每个分组内的总行数(即该描述的出现次数),并将结果映射到每一行数据上
方法2:子查询+关联查询
如果使用的数据库不支持窗口函数,可先统计各描述的总次数,再与原表关联:
SELECT t.ID, t.Description, o.Occurrences FROM your_table t JOIN ( SELECT Description, COUNT(*) AS Occurrences FROM your_table GROUP BY Description ) o ON t.Description = o.Description;
示例验证
输入测试数据:
ID | Description 23 | Key 24 | Desk 25 | Key 26 | Key 27 | Desk
执行任意上述语句,均可得到期望输出:
ID | Description | Occurrences 23 | Key | 3 24 | Desk | 2 25 | Key | 3 26 | Key | 3 27 | Desk | 2
内容的提问来源于stack exchange,提问作者DatBigD
相关产品推荐
相关产品推荐

