Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取嵌套SQL查询中一列的平均值_Mysql_Sql_Sql Server - Fatal编程技术网

Mysql 获取嵌套SQL查询中一列的平均值

Mysql 获取嵌套SQL查询中一列的平均值,mysql,sql,sql-server,Mysql,Sql,Sql Server,为了简单起见,我会尽量简化这个。我需要获取查询返回列的平均值。有道理?我将尝试详细说明。从另一个问题中借用示例结果 Plant_ID | Year |Quarter| MR | Range | CCAR | 2009 | 1 | 706 | Null | CCAR | 2009 | 2 | 626 | 0,08 | CCAR | 2009 | 2 | 637 | 0,11 | CCAR | 2009 | 2 | 737 | 0,1 | CCAR

为了简单起见,我会尽量简化这个。我需要获取查询返回列的平均值。有道理?我将尝试详细说明。从另一个问题中借用示例结果

Plant_ID | Year |Quarter| MR  | Range
| CCAR   | 2009 | 1     | 706 | Null
| CCAR   | 2009 | 2     | 626 | 0,08
| CCAR   | 2009 | 2     | 637 | 0,11
| CCAR   | 2009 | 2     | 737 | 0,1
| CCAR   | 2009 | 1     | 552 | 0,19
| CCAR   | 2009 | 4     | 418 | 0,137
| CCAR   | 2009 | 1     | 503 | 0,085
| CCAR   | 2009 | 2     | 645 | 0,058
| CCAR   | 2009 | 4     | 743 | 0,098
| CCAR   | 2009 | 3     | 556 | 0,187
| CCAR   | 2009 | 1     | 298 | 0,258
| CCAR   | 2009 | 2     | 339 | 0,041
| CCAR   | 2010 | 1     | 381 | 0,042
当我运行这样的查询时,我会得到这个结果

Select PlantID, Year, Quarter, MR, Range FROM TestTable WHERE PlantID in('CCAR')
我想要每个季度的平均MR。我想试试这样的东西

Select Quarter, AVG(MR) FROM (Select PlantID, Year, Quarter, MR, Range FROM TestTable WHERE PlantID in ('CCAR')) GROUP BY Quarter ORDER BY Quarter
问题是,我不知道将查询嵌套到何处来完成此操作。有什么帮助吗


谢谢

添加别名,例如hallo

Select Quarter, AVG(MR) FROM 
(Select PlantID, Year, Quarter, MR, Range FROM TestTable WHERE PlantID in ('CCAR')) hallo    
GROUP BY Quarter ORDER BY Quarter
虽然在这种情况下没有必要这样做,但以下内容就足够了

Select Quarter, AVG(MR)
FROM TestTable 
WHERE PlantID in ('CCAR')   
GROUP BY Quarter 
ORDER BY Quarter   
只需使用聚合:

select Year, Quarter, avg(MR)
from TestTable
where PlantID in ('CCAR')
group by Year, Quarter;

我想你想要一年和一个季度。如果没有,只需从“选择和分组依据”中删除“年份”。

我看不出有任何理由需要内联视图。至于第二个查询,输出有什么问题?它在语法上似乎是有效的,但如果你只抓住内部查询中每个MR的平均值,就不会有什么不同了。我同意Brian的观点。根据您指定的要求,不需要嵌套。您可以直接在表上运行聚合查询。因此,您的意思是从TestTable中选择季度,AvgMR,其中PlantID按季度分组?您希望不同年份的平均值不同,还是将所有季度(比如说第一季度)分组在一起?