繁体   English   中英

如何在 SQL 的单独列中显示计数

[英]How to show counts in separate columns in SQL

我刚开始使用 SQL 并试图弄清楚一切。 这是我的代码的开始:

SELECT 
Count(DL_Service_ID) AS Group,
Count(DL_Service_ID) AS Individual,
COMPLETED_DATE
FROM DAILY_LOG_DATA 
WHERE Group = '8369' AND Individual = '8219'
AND BETWEEN '2020-04-05' AND '2020-04-11';

我想要完成的是从日期 2020-04-05 和 2020-04-11(COMPLETED_DATE) 的 DL_service_ID 列中计算服务数量(8369 和 8219)。 我想在单独的列(个人)中显示结果,即 8219 和(组),即 8369。日期显示如下:COMPLETED_DATE 列中的 2020-04-07 11:14:19,不确定是否改变任何东西。 我也在使用 DBeaver。

尝试类似:

SELECT COMPLETED_DATE,
       sum( case when DL_Service_ID = '8369' then 1 else 0 end ) AS Group_cnt,
       sum( case when DL_Service_ID = '8219' then 1 else 0 end ) as Individual_cnt
FROM DAILY_LOG_DATA 
WHERE COMPLETED_DATE BETWEEN '2020-04-05' AND '2020-04-11'
GROUP BY COMPLETED_DATE;
FROM DAILY_LOG_DATA WHERE DL_Service_ID = '8369'
AND COMPLETED_DATE BETWEEN '2020-04-05' AND '2020-04-11'
GROUP BY DL_Service_ID,COMPLETED_DATE
UNION
SELECT DL_Service_ID AS Individual, Count(DL_Service_ID) AS "Group", COMPLETED_DATE 
FROM DAILY_LOG_DATA WHERE DL_Service_ID = '8219'
AND COMPLETED_DATE BETWEEN '2020-04-05' AND '2020-04-11'
GROUP BY DL_Service_ID,COMPLETED_DATE

在此处输入图像描述

SELECT Count(DL_Service_ID) AS Individual_cnt, COMPLETED_DATE 
FROM DAILY_LOG_DATA
WHERE DL_Service_ID = '8219'
AND COMPLETED_DATE BETWEEN '2020-04-05' AND '2020-04-11

所以我试图简化代码,只是为了摆脱我的错误。 但我仍然遇到错误。 在这个我得到: SQL 错误 [937] [S1000]: [Oracle][ODBC][Ora]ORA-00937: not a single-group group function。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM