我有这个有 2 列的表:
ID, TypeID
每个 ID 可以有多个 TypeID。在查询结果中,我想要以下内容:
ID, Count(TypeID = 10), Count(TypeID = 20 or 30), Count(TypeID 40 and 50)
查询本身应该尽可能快/高性能。任何人都可以帮忙吗?
我有这个有 2 列的表:
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 and 50)
我认为谓词TypeID IN (40, 50)
对你有用,因为它会给出值 40 和 50 的计数。