在mysql中求和并计算平均值

z8dt9xmd  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(351)

假设我有一张这样的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 |

如何选择准确的日期范围并获得 account 和平均值 time ? 注意这一点 name 但不一样 code 应配置为不同的组。
e、 g.选择日期范围2020-06-10至2020-06-11
退货:

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

如果我选择这样的同一天:2020-06-10到2020-06-10
只需返回:

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

anhgbhbe1#

您需要聚合:

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

相关问题