Mysql 不同类别最高值的平均值
我有一张表,上面有3个领域,旅游景点,他们所在的国家和游客对这个地方的平均评价。我想根据不同国家顶级旅游景点的平均评级来比较它们。我使用MySQL 基本上是这样的:Mysql 不同类别最高值的平均值,mysql,sql,average,greatest-n-per-group,Mysql,Sql,Average,Greatest N Per Group,我有一张表,上面有3个领域,旅游景点,他们所在的国家和游客对这个地方的平均评价。我想根据不同国家顶级旅游景点的平均评级来比较它们。我使用MySQL 基本上是这样的: Eiffel Tower | France | 4,2 Trakoscan Castle | Croatia | 4,6 例如,法国5个最佳旅游地的平均音符与克罗地亚5个最佳旅游地的平均音符相比如何。我知道如何对一个国家的所有地方进行平均并进行比较,但我不知道如何将限制和分组相结合 感谢您的帮助。您可以使用窗口功能筛选每
Eiffel Tower | France | 4,2
Trakoscan Castle | Croatia | 4,6
例如,法国5个最佳旅游地的平均音符与克罗地亚5个最佳旅游地的平均音符相比如何。我知道如何对一个国家的所有地方进行平均并进行比较,但我不知道如何将限制和分组相结合
感谢您的帮助。您可以使用窗口功能筛选每个国家/地区前5名的纸币,然后进行汇总 假设您的表中有country、place和rating列,那么您可以将查询表述为:
select country, avg(rating) avg_rating_top5
from (
select t.*,
row_number() over(partition by country order by rating desc) rn
from mytable t
) t
where rn <= 5
group by country
请注意,仅MySQL 8.0中提供窗口函数。是小数点的符号吗?是的,在法国,它是逗号而不是小数点,我在写此问题时忘记更改它^^^谢谢您的帮助。为了能够使用窗口函数,我不得不将MySQL更新到一个更新的版本,但后来它成功了。