我需要计算只开放的门票的累计金额。我有一个表,id, open_date, ticket_status和ticket_closed。我不确定如何仅计算数据类型为字符串的开放门票的累积和。
我有一个表tb,它的结构如下:
<表类>
id
open_date
ticket_status
ticket_closed
tbody><<tr>1 01-01-2022 打开 201-01-2022 关闭 01-02-2022 3 01-01-2022 打开 401-02-2022 打开 501-03-2022 打开 表类>
Try
SUM(CASE WHEN 'ticket_status' = 'open' THEN 1 ELSE 0 END) OVER (ORDER BY open_date, id)
看起来你的">id"字段标识记录的插入顺序。如果是这种情况,您可以在COUNT
窗口函数的ORDER BY
子句中使用它。然后更新您的字段值,只有当您的ticket_status='open'
。
SELECT id, open_date,
CASE WHEN ticket_status = 'open'
THEN COUNT(CASE WHEN ticket_status = 'open' THEN 1 END) OVER (ORDER BY id)
END
FROM tb
这是一个MySQL的示例,尽管这个查询可能在所有最常见的DBMS上工作。