在 Mysql 中求和并计算平均值

sum and calculate average in Mysql

假设我有一个像这样的 table

| 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 |

如何 select 一个确切的日期范围并得到 account 的总和和 time 的平均值? 请注意,相同的 name 但不同的 code 应配置为不同的组。

例如select 日期范围 2020-06-102020-06-11

return:

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

如果我 select 在同一天这样:2020-06-102020-06-10

只是 return:

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

您想要聚合:

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