首页 > 解决方案 > 计算给定ID的char出现次数

问题描述

我必须执行一个查询,我可以计算每个 ID 的不同代码的数量。

   |Id  | Code
   ------------
   | 1  |   C   
   | 1  |   I   
   | 2  |   I   
   | 2  |   C   
   | 2  |   D   
   | 2  |   D   
   | 3  |   C
   | 3  |   I   
   | 3  |   D 
   | 4  |   I   
   | 4  |   C
   | 4  |   C   

输出应该是这样的:

   |Id  | Count | #Code C | #Code I | #Code D
   -------------------------------------------
   | 1  | 2     |    1    |    1    |   0  
   | 2  | 3     |    1    |    0    |   2  
   | 3  | 3     |    1    |    1    |   1  
   | 4  | 2     |    2    |    1    |   0  

你能给我一些建议吗?

标签: sqlsql-server

解决方案


这回答了问题的原始版本。

您正在寻找count(distinct)

select id, count(distinct code)
from t
group by id;

推荐阅读