0
我有一个数据组,看起来像这样:的Oracle SQL摘要/枢轴表
ID Description Team
A Missing Name; Missing Gender Team1
B Missing Gender Team1
C Missing Name Team2
D Missing Name Team2
即,每个ID具有一个线,以识别与该ID的任何问题文本列(介绍),以及作为该ID所属的团队的名称。我已经成功地概括它:
Team Missing Gender Missing Name
Team1 2 1
Team2 0 2
通过使用一个case语句看起来像这样:
SELECT
"Team",
sum(case when "DQ Info" like '%Missing Gender%' then 1 ELSE 0 END) as "Missing Gender",
sum(case when "DQ Info" like '%Missing Name%' then 1 ELSE 0 END) as "Missing Name"
FROM
(*)
GROUP BY "Team"
我希望能够使它看起来像来概括这个数据这个代替:
Description Team1 Team2
Missing Gender 2 0
Missing Name 1 2
我知道一定有这样做的一种方式,但我此刻的挣扎 - 在上述领域只使用“说明”,而不是“团队”给出了这样的结果:
Description Team1 Team2
Missing Name; Missing Gender 1 0
Missing Gender 1 0
Missing Name 0 2
这不是我所追求的。任何帮助表示赞赏,但我会继续修改,所以如果我设法弄清楚,我会更新这篇文章。请注意,这仅仅是数据集的一个例子,而不是实际的数据集。
编辑:根据bpgergo的建议进行查询。在完成一些阅读后,看起来下面将会短路,即一旦满足内部情况下的第一个标准就终止查询,这意味着它将永远不能够多次计数列。这是一个耻辱,但我认为我将不得不坚持我的原始查询。
SELECT
"Description",
sum(case when "Team" like 'Team1' then 1 ELSE 0 END) as "Team1",
sum(case when "Team" like 'Team2' then 1 ELSE 0 END) as "Team2"
FROM(SELECT
"Team",
case when "DQ Info" like '%[Check Role]%' then '[Check Role]'
ELSE case when "DQ Info" like '%[Client deceased]%' then '[Client deceased]'
ELSE case when "DQ Info" like '%[2 Parents not recorded]%' then '[2 Parents not recorded]'
ELSE case when "DQ Info" like '%[Religion not recorded]%' then '[Religion not recorded]'
ELSE case when "DQ Info" like '%[1st Language not recorded]%' then '[1st Language not recorded]'
ELSE case when "DQ Info" like '%[Ethnicity not recorded]%' then '[Ethnicity not recorded]'
ELSE case when "DQ Info" like '%[No Current Worker]%' then '[No Current Worker]'
ELSE case when "DQ Info" like '%[No Current Team]%' then '[No Current Team]'
ELSE case when "DQ Info" like '%[Update Gender]%' then '[Update Gender]'
ELSE case when "DQ Info" like '%[No Plan]%' then '[No Plan]'
ELSE case when "DQ Info" like '%[Update Plan]%' then '[Update Plan]'
END END END END END END END END END END END
as "Description"
FROM(
*
FROM
(*)WORKLOAD)DATA)
GROUP BY "Description"
感谢 - 这是有道理的。但是,当我运行查询时,它不会返回所有的“描述”类别,也不是正确的计数。我认为当在内部查询中使用大小写时,它只是识别“说明”中的第一个错误 - 所以如果一个ID有2个错误,上面的查询只会识别该查询中的第一个错误(希望这很有道理! )。我已经发布了上述查询的缩写版本。 – bawpie