sql - 一张表中有 2 个不同条件的 2 列
问题描述
是否可以创建一个查询,该查询将输出具有 2 个不同 WHERE 子句的 2 列
这是我的理想输出:
| YEAR | WW | COUNT | *COUNT2 |
其中 count 1 是第一个 WHERE 子句的结果。我已经创建了。我想要的是另一列,其中的值将使用不同的 WHERE 子句。
这是我的查询:
SELECT extract(YEAR FROM EVT_TARGET) as Years, to_char(EVT_TARGET, 'ww') AS WorkWeek, COUNT(*)
FROM r5events
WHERE EVT_JOBTYPE = 'CORR' AND EVT_RSTATUS <> 'C' AND EVT_TARGET IS NOT NULL
GROUP BY extract(YEAR FROM EVT_TARGET), to_char(EVT_TARGET, 'ww');
通过这个查询,我能够获得第 1 3 列,我现在的问题是如何在第 4 列上提供值为EVT_RSTATUS = 'C'
.
有什么见解吗?
TIA
解决方案
我认为你想要条件聚合:
SELECT
extract(YEAR FROM EVT_TARGET) as Years,
to_char(EVT_TARGET,'ww') AS WorkWeek,
SUM(CASE WHEN EVT_RSTATUS <> 'C' THEN 1 ELSE 0 END) AS cnt1,
SUM(CASE WHEN EVT_RSTATUS = 'C' THEN 1 ELSE 0 END) AS cnt2
FROM r5events
WHERE EVT_JOBTYPE ='CORR' AND EVT_TARGET IS NOT NULL
GROUP BY extract(YEAR FROM EVT_TARGET), to_char(EVT_TARGET,'ww');
推荐阅读
- python - 是否可以使用降价在 Jupyter Notebook 的目录中创建嵌套的有序列表?
- node.js - docker构建镜像时找不到模块
- delphi - 构建 Delphi 10 项目组时的 MSBuild 警告(MSB4011 和其他)
- highcharts - Highcharts Highmaps 如何更改地图气泡中颜色轴的值
- javascript - 将 ICS 格式转换为有效的 JS 格式
- pandas - pandas:基于不同行值的多行条件
- c# - 是否可以在 C# 中模拟给定类的新创建实例?
- sql - 读入 SQL Server 宏列表的每个元素
- forms - Flutter:TextEditingController - 如何正确观察输入值的变化?
- javascript - Storing API keys and secrets in Google AppScript user property