gpt4 book ai didi

mysql - 单个 MySQL 查询返回不同分类的平均值

转载 作者:行者123 更新时间:2023-11-29 06:37:08 26 4
gpt4 key购买 nike

我有一个 MySQL 数据库,其中包含一个包含 3 列的表:调查、类型和响应。每个调查可以有多种类型,每种类型可以有多个响应。响应是一个整数。

|--------|-------|----------|
| survey | type | response |
|--------|-------|----------|
| Food | Men | 4 |
|--------|-------|----------|
| Food | Men | 5 |
|--------|-------|----------|
| Food | Women | 1 |
|--------|-------|----------|
| Food | Women | 3 |
|--------|-------|----------|
| Drink | Old | 3 |
|--------|-------|----------|
| Drink | Old | 5 |
|--------|-------|----------|
| Drink | Young | 1 |
|--------|-------|----------|

是否可以在单个 SQL 查询中返回同一调查的所有响应以及同一类型的所有响应的平均响应?

使用以下 SQL 和 GROUP BY 返回每种类型的平均值

`SELECT survey, type, AVG(response) FROM 'test' GROUP BY survey, type`

但是有没有办法修改查询以返回调查平均值(这是类型的组合)以输出如下所示的内容?

|--------|-------|---------------|
| survey | type | AVG(response) |
|--------|-------|---------------|
| Food | Men | 4.5 |
|--------|-------|---------------|
| Food | Women | 2 |
|--------|-------|---------------|
| Food | ----- | 3.25 |
|--------|-------|---------------|
| Drink | Old | 4 |
|--------|-------|---------------|
| Drink | Young | 1 |
|--------|-------|---------------|
| Drink | ----- | 2.5 |
|--------|-------|---------------|

目前,我必须使用循环来输入新的调查并键入值来检索这两个平均响应,但是如果可以在没有循环的情况下在单个查询中实现这一点,那么效率会更高。

在此示例中我使用了一个非常简化的表格来说明问题:)

最佳答案

您还可以尝试使用WITH ROLLUP选项

create table t(survey varchar(50),type varchar(50), response int);

insert into t values('Food','Men',4);
insert into t values('Food','Men',5);
insert into t values('Food','Women',1);
insert into t values('Food','Women',3);
insert into t values('Drink','Old',3);
insert into t values('Drink','Old',5);
insert into t values('Drink','Young',1);


select survey,type,avg(response)
from t
group by survey,type with rollup;

关于mysql - 单个 MySQL 查询返回不同分类的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53334415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com