dar*_*rsh 2 mysql database select average
我有一个MySQL表有三列id,名称和高度.
我想运行一个查询来返回所有条目的名称和高度,以及所有条目的平均高度.所有这些都必须在一个查询中完成.
这是我试过的.
SELECT name, height, avg(height) as average_height FROM mytable
Run Code Online (Sandbox Code Playgroud)
此查询仅返回单行,但平均高度正确.
name height average_height
--------------------------------
Harry 165 169.5
Run Code Online (Sandbox Code Playgroud)
然后我尝试了这个查询
SELECT name, height, avg(height) as average_height FROM mytable GROUP BY name
Run Code Online (Sandbox Code Playgroud)
然后它返回所有行,但平均值不正确
name height average_height
--------------------------------
Harry 165 165
Tom 170 170
George 180 180
Raj 163 163
Run Code Online (Sandbox Code Playgroud)
如何在单个查询中获取平均值和所有行.
小智 5
这是一种方式:
SELECT name, height, average_height FROM mytable CROSS JOIN (
select avg(height) as average_height FROM mytable
) as avg;
Run Code Online (Sandbox Code Playgroud)
SQLFiddle示例(更新示例以反映要使用的建议CROSS JOIN).