TSQL-按类型分组
我的表有两列:TSQL-按类型分组,sql,sql-server,tsql,group-by,Sql,Sql Server,Tsql,Group By,我的表有两列: ID, TypeID 每个ID可以有多个TypeID。在查询结果中,我希望具有以下内容: ID, Count(TypeID = 10), Count(TypeID = 20 or 30), Count(TypeID 40 and 50) 查询本身应该尽可能快/高效。任何人都能帮上忙吗?试试这个: SELECT ID, SUM(CASE WHEN TypeID = 10 THEN 1 ELSE 0 END) "Count of 10", SUM(CASE WHEN
ID, TypeID
每个ID可以有多个TypeID。在查询结果中,我希望具有以下内容:
ID, Count(TypeID = 10), Count(TypeID = 20 or 30), Count(TypeID 40 and 50)
查询本身应该尽可能快/高效。任何人都能帮上忙吗?试试这个:
SELECT
ID,
SUM(CASE WHEN TypeID = 10 THEN 1 ELSE 0 END) "Count of 10",
SUM(CASE WHEN TypeID IN (20, 30) THEN 1 ELSE 0 END) "Count of 30 or 20",
SUM(CASE WHEN TypeID IN (40, 50) THEN 1 ELSE 0 END) "Count of 40 AND 50"
FROM Table
GROUP BY ID;
对于最后一种情况:Count(TypeID 40和50)
我认为(40,50)中的谓词TypeID将对您有效,因为它将给出值40和50的计数
试试这个:
SELECT
ID,
SUM(CASE WHEN TypeID = 10 THEN 1 ELSE 0 END) "Count of 10",
SUM(CASE WHEN TypeID IN (20, 30) THEN 1 ELSE 0 END) "Count of 30 or 20",
SUM(CASE WHEN TypeID IN (40, 50) THEN 1 ELSE 0 END) "Count of 40 AND 50"
FROM Table
GROUP BY ID;
对于最后一种情况:Count(TypeID 40和50)
我认为(40,50)
中的谓词TypeID将对您有效,因为它将给出值40和50的计数
不清楚您想做什么,请使用表中的当前数据编辑您的帖子,然后编辑所需的结果。每个ID可以有多个TypeID?你能发一份数据样本吗?我认为您的数据库中可能出现了爆炸。不清楚您试图做什么,请使用表中的当前数据编辑您的帖子,然后编辑所需的结果。每个ID可以有多个TypeID?你能发一份数据样本吗?我想你的数据库中可能发生了爆炸。很好地利用聚合来提高速度+woot。很好地利用骨料提高速度+胡特。