通过用户ID,月份,总和计算统计信息-在列中选择月份数

时间:2019-07-16 14:18:04

标签: mysql

我有带有列的表user_payments

user_id / payment_date / type_payment / sum
111     /  2018-01-12   / card        / 131
111     /  2018-02-17   /  cash       /  18
124     /  2018-03-21   / card        /  148
119     /  2018-04-01   / card        /  225

我需要通过查询将其转换为这样

user_id / 1 (month_numb) type_pay / sum(sum of 1st month) / 2 / 2_sum
111    /  card                    / 131                  / cash/ 18

1 个答案:

答案 0 :(得分:0)

据我了解,您有: 年,月,类型和总和, 由于所有这些数据在行级别都是动态的。这就是我想出的。

SELECT p.user_id, YEAR(payment_date), MONTH(payment_date), type_payment, SUM(p.`sum`)
FROM user_payments as p
group by p.user_id, YEAR(payment_date), MONTH(payment_date), type_payment
ORDER BY p.user_id, YEAR(payment_date), MONTH(payment_date), type_payment

动态生成列可能很麻烦。

如果用户111在一个月内有6笔付款(考虑到其他类型)该怎么办。这是否意味着必须生成更多列才能满足6条记录? 在编程方面,拥有动态列可能很困难。