【问题标题】:sum and calculate average in Mysql在Mysql中求和并计算平均值
【发布时间】:2020-10-02 00:23:09
【问题描述】:

假设我有这样一张桌子

| id | name   | code | method | account | time | date       |
|----|--------|------|--------|---------|------|------------|
| 1  | name01 | 200  | GET    | 1       | 100  | 2020-06-10 |
| 2  | name01 | 201  | GET    | 2       | 150  | 2020-06-10 |
| 3  | name02 | 200  | POST   | 4       | 200  | 2020-06-10 |
| 4  | name01 | 200  | GET    | 5       | 250  | 2020-06-11 |
| 5  | name02 | 200  | POST   | 1       | 300  | 2020-06-11 |

如何选择准确的日期范围并获得account 的总和和time 的平均值? 请注意,相同的name 但不同的code 应配置为不同的组。

例如选择日期范围 2020-06-102020-06-11

返回:

| name   | code | method | account | time |
|--------|------|--------|---------|------|
| name01 | 200  | GET    | 6       | 175  |
| name01 | 201  | GET    | 2       | 150  |
| name02 | 200  | POST   | 5       | 250  |

如果我像这样选择同一天:2020-06-102020-06-10

返回:

| name   | code | method | account | time |
|--------|------|--------|---------|------|
| name01 | 200  | GET    | 1       | 100  |
| name01 | 201  | GET    | 2       | 150  |
| name02 | 200  | POST   | 4       | 200  |

【问题讨论】:

    标签: mysql sql group-by sum average


    【解决方案1】:

    你想要聚合:

    select
        name,
        code,
        method,
        sum(account) account,
        avg(time) time
    from mytable
    where date between '2020-06-10' and '2020-06-11'
    group by name, code, method
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-05
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多