我有以下数据,计数是(例如:复杂问题的数量是按月创建的),我还需要根据单行中的名称获取所有12个月的计数总和,是可以实现的吗?
以下是查询
WITH
PERIOD AS
(
SELECT LEVEL LVL ,TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), (LEVEL - 1)), 'MON YY') PERIOD_DATE ,ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), (LEVEL - 1)) PERIOD_DATE_RAW
FROM DUAL
CONNECT BY
LEVEL < 13
)
,INCIDENTDATA AS
(
SELECT COUNT(1) COUNT_OF,SUM(COUNT(*)) OVER() ,TRUNC(IMM.CREATED_DATE,'MON')CREATEDATE, IMM.CATEGORY_ID Category
FROM IN_INC IMM
GROUP BY TRUNC(IMM.CREATED_DATE,'MON'),IMM.CATEGORY_ID
)
,DUALL AS
(
SELECT CAT.NAME NAME,CAT.ID ID FROM IN_IN CAT
)
,PERIODDATA AS
(
SELECT PD.LVL,PD.PERIOD_DATE, DUALL.NAME,DUALL.ID,PD.PERIOD_DATE_RAW
FROM DUALL CROSS JOIN PERIOD PD
ORDER BY DUALL.NAME ,PD.LVL
)
SELECT PRO.NAME,PRO.PERIOD_DATE,RD.COUNT_OF,count(I.ID)total
FROM PERIODDATA PRO
LEFT OUTER JOIN INCIDENTDATA RD ON RD.CREATEDATE=PRO.PERIOD_DATE_RAW AND PRO.ID=RD.Category
LEFT OUTER JOIN IN_INC I ON I.CATEGORY_ID = RD.Category
GROUP BY PRO.NAME,PRO.PERIOD_DATE,RD.COUNT_OF,PRO.LVL
ORDER BY PRO.NAME, PRO.LVL,PRO.PERIOD_DATE
在总列中,我有一个计数(id),我得到了12个月的计数,但是如果你看到我在第一篇帖子中发布的结果集,每行的总重复次数,我的问题是这里有可能以某种方式一次显示总共12个月?
Name Date Count total count
Complex JAN 15 0
Complex FEB 15 0
Complex MAR 15 0
Complex APR 15 0
Complex MAY 15 1 3
Complex JUN 15 1 3
Complex JUL 15 1 3
Complex AUG 15 0
Complex SEP 15 0
Complex OCT 15 0
Complex NOV 15 0
Complex DEC 15 0
Issue JAN 15 0
Issue FEB 15 0
Issue MAR 15 0
Issue APR 15 2 12
Issue MAY 15 0
Issue JUN 15 9 12
Issue JUL 15 1 12
Issue AUG 15 0
Issue SEP 15 0
答案 0 :(得分:1)
如果尚未创建total_count
,并且您希望创建它:
SELECT name,date,count,SUM(count) OVER (PARTITION BY name) as total_count
答案 1 :(得分:0)
以下是使用 MS SQL
的示例SELECT MyTable.[Name], MyTable.[Date], MyTable.[Count], RefTable.TOTAL
FROM MyTable
LEFT JOIN (SELECT [Name] AS RefName, SUM([Count]) AS TOTAL FROM MyTable GROUP BY [Name]) AS RefTable
ON MyTable.[Name]= RefTable.RefName AND MyTable.[Count] > 0
这里是AutoCloseable
的现场演示。
我希望即使它是MS SQL也对你有用。
答案 2 :(得分:-1)
SELECT name, SUM(total count) AS count_sum FROM your_table ORDER BY name
我认为这就是你想要的
SQL的SUM()
函数适用于您的场景