我正在尝试回答这个问题:年初至今按月完成的总付款是多少?
我需要计数和总和 - 一个月内完成了多少笔付款,以及每个月完成的付款总额是多少(一年内(2023 年))。
我当前的代码是:
SELECT trip_id, id, user_id, date (created_at), storage_currency, converted_subtotal, subtotal, converted_total, total,
SUM(converted_total) OVER (Partition by year(created_at) order by created_at
ROWS BETWEEN unbounded preceding and current row) as YTD_Frame
FROM production.payments`
--where created_at >= '2023-01-01 and status !='failed'
我当前的日期是
创建于 | 货币 | 转换_Subt | 小计 | converted_total | 总计 | YTD_Frame | |
---|---|---|---|---|---|---|---|
2018-01-01 | 美元 | 20000 | 200.00 | 20600 | 206.00 | 206000 | |
2018-01-01 | 美元 | 40000 | 400.00 | 41000 | 410.00 | 48000 | |
2018-01-02 | 美元 | 34000 | 340.00 | 34200 | 342.00 | 82000 | |
2018-01-02 | 美元 | 45000 | 450.00 | 44000 | 440.00 | 64000 | |
2018-02-01 | 美元 | 50000 | 500.00 | 50500 | 505.00 | 164000 | |
2019-02-01 | 美元 | 142000 | 1420.00 | 142000 | 1420.00 | 112000 | |
2019-01-18 | 美元 | 80000 | 800.00 | 80700 | 807.00 | 238200 | |
2019-03-20 | 美元 | 225000 | 2250.00 | 226000 | 2260.00 | 421400 | |
2020-01-01 | 美元 | 205000 | 2050.00 | 205000 | 2050.00 | 716600 | |
2020-01-01 | 美元 | 150000 | 1500.00 | 152000 | 1520.00 | 1329000 | |
2021-01-01 | 美元 | 74000 | 740.00 | 74000 | 740.00 | 231900 | |
2021-01-01 | 美元 | 50000 | 500.00 | 50000 | 500.00 | 94200 | |
2021-01-01 | 美元 | 40000 | 400.00 | 40000 | 400.00 | 198300 | |
2022-01-01 | 美元 | 75000 | 750.00 | 75200 | 752.00 | 997700 | |
2022-01-01 | 美元 | 125000 | 1250.00 | 125000 | 1250.00 | 802000 | |
2023-01-01 | 美元 | 82000 | 820.00 | 82000 | 820.00 | 781400 | |
2023-06-04 | 美元 | 90000 | 900.00 | 90000 | 900.00 | 909200 | |
2023-11-10 | 美元 | 105000 | 1050.00 | 105000 | 1050.00 | 899300 |
我想要的结果是这样的:
月 | 付款次数 | 付款总额 |
---|---|---|
一月 | 240 | 304,874 |
二月 | 262 | 423,971 |
三月 | 281 | 238,761 |
四月 | 207 | 348,112 |
五月 | 298 | 403,171 |
六月 | 240 | 304,874 |
七月 | 262 | 436,001 |
八月 | 282 | 241,891 |
九月 | 214 | 347,123 |
十月 | 301 | 307,174 |
我不知道您正在处理哪种 RDBMS,但对于 MySQL,请尝试以下操作:
选择 DATE_FORMAT(created_at, '%M') 作为月份,COUNT(*) 作为 Payment_Count,SUM(converted_total) 作为 Payment_Total FROM 生产.付款 WHERE created_at BETWEEN '2023-01-01' AND '2024-01-01' AND and status != 'failed' 按 DATE_FORMAT 分组(创建时间,'%M')