SQL - 加入两个针对网格输出的相同 table 的查询
SQL - joining two queries against same table for grid output
我应该可以从其他 questions/answers 我在这里读到的文章中弄清楚这一点,但我今天什么也做不了。非常感谢任何帮助。
我有两个查询,计算 "GOOD" 个反馈的实例,以及来自单个 table 个反馈的 "BAD" 个实例。我只是想加入他们,这样我就可以看到类似下面的内容
ID | GOOD | BAD
121 | 0 | 7
123 | 5 | 0
287 | 32 | 8
我 运行 来自 VBA 的大量查询,如果这很重要,0 可以为空。我可以在 VBA 中清理这些东西。
查询 1:
select ID, count(*)
from HLFULL
where DEPT= 'HLAK'
and feedback = 'GOOD'
group by ID
查询 2:
select ID, count(*)
from HLFULL
where DEPT= 'HLAK'
and feedback = 'BAD'
group by ID
我尝试过 UNION、UNION ALL、JOIN、INNER JOIN、OUTER JOIN、聚合等
您可以像这样进行条件聚合:
select ID,
count(case when feedback = 'GOOD' then 1 end) as Good,
count(case when feedback = 'BAD' then 1 end) as Bad
from HLFULL
where DEPT = 'HLAK'
and feedback in ('GOOD', 'BAD')
group by ID
您应该能够使用条件聚合获得结果。这种类型的查询使用 CASE
表达式和聚合函数来获取多列:
select ID,
count(case when feedback = 'GOOD' then Id end) as Good,
count(case when feedback = 'BAD' then Id end) as Bad
from HLFULL
where DEPT= 'HLAK'
group by ID
我应该可以从其他 questions/answers 我在这里读到的文章中弄清楚这一点,但我今天什么也做不了。非常感谢任何帮助。
我有两个查询,计算 "GOOD" 个反馈的实例,以及来自单个 table 个反馈的 "BAD" 个实例。我只是想加入他们,这样我就可以看到类似下面的内容
ID | GOOD | BAD
121 | 0 | 7
123 | 5 | 0
287 | 32 | 8
我 运行 来自 VBA 的大量查询,如果这很重要,0 可以为空。我可以在 VBA 中清理这些东西。
查询 1:
select ID, count(*)
from HLFULL
where DEPT= 'HLAK'
and feedback = 'GOOD'
group by ID
查询 2:
select ID, count(*)
from HLFULL
where DEPT= 'HLAK'
and feedback = 'BAD'
group by ID
我尝试过 UNION、UNION ALL、JOIN、INNER JOIN、OUTER JOIN、聚合等
您可以像这样进行条件聚合:
select ID,
count(case when feedback = 'GOOD' then 1 end) as Good,
count(case when feedback = 'BAD' then 1 end) as Bad
from HLFULL
where DEPT = 'HLAK'
and feedback in ('GOOD', 'BAD')
group by ID
您应该能够使用条件聚合获得结果。这种类型的查询使用 CASE
表达式和聚合函数来获取多列:
select ID,
count(case when feedback = 'GOOD' then Id end) as Good,
count(case when feedback = 'BAD' then Id end) as Bad
from HLFULL
where DEPT= 'HLAK'
group by ID