我很难得到一个标准的查询来完成它的工作......我确定我错过了一些愚蠢的东西。
我有一个包含两列用于此查询的表 - 该表称为“调用”,我使用的两个字段是“shiftID”和“type”。 (类型是查找字段,将包含2个固定值中的1个)
我需要进行的查询就是计算每个移位id是两个固定值出现的次数 - 所以结果看起来像这样:
| shiftID | Type1 | Type2 |
---------------------------
| 131011 | 5 | 2 |
---------------------------
| 131012 | 7 | 6 |
---------------------------
| 131013 | 1 | 3 |
---------------------------
任何帮助将不胜感激 - 谢谢!
答案 0 :(得分:0)
试试这个:通过shiftId从调用组中选择shiftId,sum(type1),sum(type2) 如果我误解了你的问题,请评论......
答案 1 :(得分:0)
以下是达到预期结果的方法。
假设这样的数据集:
ShiftID Type
------- -----------
131011 fixedvalue1
131012 fixedvalue1
131013 fixedvalue2
... ...
你可以先用这种方式进行转换:
SELECT
ShiftID,
IIF(Type = 'fixedvalue1', 1, 0) AS Type1,
IIF(Type = 'fixedvalue2', 1, 0) AS Type2
FROM calls
这会给你以下行集:
ShiftID Type1 Type2
------- ----- -----
131011 1 0
131012 1 0
131013 0 1
... ... ...
对于每个ShiftID
,现在有两列,Type1
和Type2
,其中一列为1,另一列为0。如果您按ShiftID
对此结果集进行分组并汇总(SUM)两列,您将获得每ShiftID
个两种固定类型的计数:
SELECT
ShiftID,
SUM(IIF(Type = 'fixedvalue1', 1, 0)) AS Type1,
SUM(IIF(Type = 'fixedvalue2', 1, 0)) AS Type2
FROM calls
GROUP BY ShiftID