【问题标题】:How to SUM CONCAT GROUP BY如何对 CONCAT GROUP BY 求和
【发布时间】:2020-06-04 23:09:37
【问题描述】:

我有两个表第一个用户表是用户的数据第二个表是 user_volume 表是用户成本量我想要一个 sql 查询并获取用户并获得每月成本总和什么是 SQL 查询?

user_volume 
    id     | user_id        | volume    | created_at
    1      |    1           |  66.00    | 2018-03-03 15:36:45
    2      |    1           |  77.00    | 2018-03-03 15:36:21
    3      |    1           |  88.00    | 2018-03-03 15:36:11
    4      |    2           |  99.00    | 2018-03-03 19:36:15
    5      |    2           |  65.05    | 2018-04-04 21:30:07
    6      |    2           |  99.00    | 2018-04-04 19:36:15
    7      |    2           |  65.05    | 2018-04-04 21:30:07
    8      |    1           |  22.00    | 2018-04-04 15:36:45
    9      |    1           |  44.00    | 2018-04-04 15:36:21
    10     |    1           |  33.00    | 2018-04-04 15:36:11
    11     |    2           |  13.00    | 2018-04-04 15:36:45
    12     |    2           |  224.00   | 2018-04-04 15:36:21
    13     |    2           |  651.00   | 2018-04-04 15:36:11



        user
id | name | surname
1  |  X   |    Y

result
user_id |  date1(03-2018) | date2(04-2018)
 1   |     (231)          | (99)
 2   |     (99)           | (888)

【问题讨论】:

  • 这是pivot。您可以而且应该(!)通常在您的应用程序中执行此操作,因为它基本上只是您想要显示数据的方式。
  • 你有例子吗?我想按 user_id 和每月费用总和进行分组

标签: mysql sql group-by concat group-concat


【解决方案1】:

你似乎想要条件聚合:

select uv.id as user_id,
       sum(case when created_at >= '2018-03-01' and created_at < '2018-04-1'
                then volume else 0
           end) as volume_month1,
       sum(case when created_at >= '2018-04-01' and created_at < '2018-05-1'
                then volume else 0
           end) as volume_month2
from user_volume uv
group by uv.id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-06
    • 2012-10-02
    • 2019-02-11
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    相关资源
    最近更新 更多