Oracle SQL如何编写具有多个联接和groupby的复杂查询

问题描述 投票:0回答:1

Oracle SQL:我有以下查询集,所有查询都从同一张表中获取。我想找到是否可以将所有内容组合成一个查询的方法吗?

SELECT COUNT(T.ISSUE_NUMBER) total_cases,
       COUNT(CASE WHEN T.DIST_COMPLETED_STATUS = 'Closed' THEN 1 END) total_close,
       COUNT(CASE WHEN T.DIST_COMPLETED_STATUS = 'Open' THEN 1 END) total_open,
       COUNT(CASE WHEN T.IS_DUPLICATE = 1 THEN 1 END) total_duplicate,
       COUNT(CASE WHEN T.IS_REJECTION = 1 THEN 1 END) total_rejected,
       T.G_SECTOR 
FROM TRANSFORMED T
WHERE T.SERVICE_CENTER_ENGLISH = 'Center' 
AND TO_DATE(T.RAISED_ON)  >= TRUNC(SYSDATE)-30
AND T.IS_DISTORTION = 1
GROUP BY T.G_SECTOR 
ORDER BY 1 DESC

SELECT COUNT(T.ISSUE_NUMBER) total_cases,
       COUNT(CASE WHEN T.DIST_COMPLETED_STATUS = 'Closed' THEN 1 END) total_close,
       COUNT(CASE WHEN T.DIST_COMPLETED_STATUS = 'Open' THEN 1 END) total_open,
       COUNT(CASE WHEN T.IS_DUPLICATE = 1 THEN 1 END) total_duplicate,
       COUNT(CASE WHEN T.IS_REJECTION = 1 THEN 1 END) total_rejected,
       T.AGENCY_NAME,T.DIST_AGENCY_TYPE
FROM TRANSFORMED T
WHERE T.SERVICE_CENTER_ENGLISH = 'Center' 
AND TO_DATE(T.RAISED_ON)  >= TRUNC(SYSDATE)-30
AND T.IS_DISTORTION = 1
GROUP BY T.AGENCY_NAME, T.DIST_AGENCY_TYPE
ORDER BY 1 DESC

SELECT COUNT(T.ISSUE_NUMBER) total_cases,
       COUNT(CASE WHEN T.DIST_COMPLETED_STATUS = 'Closed' THEN 1 END) total_close,
       COUNT(CASE WHEN T.DIST_COMPLETED_STATUS = 'Open' THEN 1 END) total_open,
       COUNT(CASE WHEN T.IS_DUPLICATE = 1 THEN 1 END) total_duplicate,
       COUNT(CASE WHEN T.IS_REJECTION = 1 THEN 1 END) total_rejected,
       T.VIOLATION_ENGLISH,T.DIST_AGENCY_TYPE
FROM TRANSFORMED T
WHERE T.SERVICE_CENTER_ENGLISH = 'Center' 
AND TO_DATE(T.RAISED_ON)  >= TRUNC(SYSDATE)-30
AND T.IS_DISTORTION = 1
GROUP BY T.VIOLATION_ENGLISH, T.DIST_AGENCY_TYPE
ORDER BY 1 DESC
sql oracle
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.