按状态和日期计算所有行
Count all rows by status and day
我想用这个 table 在 Postgre 中存储票证SQL。
CREATE TABLE TICKET(
ID INTEGER NOT NULL,
TITLE TEXT,
STATUS INTEGER,
LAST_UPDATED DATE,
CREATED DATE
)
;
我使用列 'status' 来设置不同的状态(1、2、3、4)。我如何通过一个 SQL 查询按状态和日期计算所有工单?
我想得到最终结果,例如简单的数字数组:
32 31 23 42 9.11.215
31 21 13 22 10.11.215
3 3 2 43 11.11.215
您可以使用条件聚合来完成此操作,它将单独的行合并为 1 个聚合行:
SELECT t.created,
COUNT(CASE WHEN t.status = '1' THEN 1 END) as cnt_status1,
COUNT(CASE WHEN t.status = '2' THEN 1 END) as cnt_status2,
COUNT(CASE WHEN t.status = '3' THEN 1 END) as cnt_status3,
COUNT(CASE WHEN t.status = '4' THEN 1 END) as cnt_status4
FROM ticket t
GROUP BY t.created
我想用这个 table 在 Postgre 中存储票证SQL。
CREATE TABLE TICKET(
ID INTEGER NOT NULL,
TITLE TEXT,
STATUS INTEGER,
LAST_UPDATED DATE,
CREATED DATE
)
;
我使用列 'status' 来设置不同的状态(1、2、3、4)。我如何通过一个 SQL 查询按状态和日期计算所有工单?
我想得到最终结果,例如简单的数字数组:
32 31 23 42 9.11.215
31 21 13 22 10.11.215
3 3 2 43 11.11.215
您可以使用条件聚合来完成此操作,它将单独的行合并为 1 个聚合行:
SELECT t.created,
COUNT(CASE WHEN t.status = '1' THEN 1 END) as cnt_status1,
COUNT(CASE WHEN t.status = '2' THEN 1 END) as cnt_status2,
COUNT(CASE WHEN t.status = '3' THEN 1 END) as cnt_status3,
COUNT(CASE WHEN t.status = '4' THEN 1 END) as cnt_status4
FROM ticket t
GROUP BY t.created