在 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-10 至 2020-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-10 到 2020-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
假设我有一个像这样的 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-10 至 2020-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-10 到 2020-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