首页 > 解决方案 > 选择平均值,在具有范围的行之间求和

问题描述

编号 一些值
1 298
2 842
3 982
... ...
100 844
开始结束键 start_idx end_idx
1 1 2
2 3 40
3 1 100

我如何在和select的行之间平均或总和 example_tablestart_idxend_idx

我想要的表格如下

开始结束键 avg_of_some_values sum_of_some_values 计数
1 idx 1 和 2 之间 example_table 的平均值 idx 1 和 2 之间 example_table 的总和 2
2 idx 3 到 40 之间的 example_table 的平均值 idx 3 到 40 之间 example_table 的总和 38
3 idx 1 到 100 之间的 example_table 的平均值 idx 1 到 100 之间 example_table 的总和 100

我试过这个

select avg(some_value), sum(some_value), count(*)
from example_table where example_table.idx between ??? and ???

但 ???不允许多行。

标签: mysqlsql

解决方案


这里是如何

select start_end_key , avg(some_value), sum(some_value) , count(*)
from example_table et
join range_table rt on et.idx between start_idx and end_idx
group by start_end_key

推荐阅读