提问人:Volodymyr 提问时间:7/16/2019 最后编辑:KIKO SoftwareVolodymyr 更新时间:7/17/2019 访问量:32
按用户 ID、月份、总和计算统计信息 - 在列中选择月数
Calculate stats by userid, month, sum - select number of month in columns
问:
我有带列的表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
答:
0赞
dodzb
7/17/2019
#1
据我了解,你有: 年、月、类型和总和, 由于所有这些数据在行级别都是动态的。这就是我想出的。
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 条记录? 在编程方面,拥有动态列可能很困难。
评论
0赞
Volodymyr
7/17/2019
我可能需要转置它,因为就像我在查询的预期结果中写的那样 - 我需要列中的月数,结果应该像 id // 1(月数)付款类型 /// 第一个月的总和 // 2 付款 /// 第二个月的总和
评论