【发布时间】:2022-08-17 00:33:58
【问题描述】:
我有一个名为 EventLog 的表,如下所示: EventLog Table
我想显示每个 deviceId 的每个事件类型的计数,如下所示: Aggregated Table
然后,最终只显示 type3 计数和 type4 计数不同的设备: Different Counts Only
我知道我需要使用 COUNT 和 GROUP BY 以及可能的嵌套 SELECT?
我试过了:
SELECT deviceId, min(eventType) as [Type3], max(eventType) as [Type4]
FROM EventLogWHERE eventType IN (3,4)
GROUP BY deviceId;
但这只是给了我每个 deviceID 的最小值和最大值,而不是计算类型 3 和类型 4 eventTypes 的出现次数。我无法弄清楚如何将 eventType 值拆分为它们自己的列。
我也试过:
SELECT deviceId, count(eventType)
FROM eventLog
WHERE eventType = 3
GROUP BY deviceId;
但是(显然)只返回 eventType 3 的每个 deviceId 的计数 - 我需要一个 eventType 3 的列和一个 eventType4 的列。
标签: sql sql-server database