表格中每24行取怎么求不连续单元格的平均值?

在此输入代码我有一个非常详尽的每小时颗粒物排放浓度表,我必须根据该表计算每日平均值。 在excel中,我使用了OFFSET,ROW和AVG的复合函数,效果很好,但我不知道如何在sqlite中执行相同的任务 以下是我在excel中使用的内容:
=AVERAGE(OFFSET(cell reference; number of offset rows; number of offset columns; range in rows; range in columns)) 具有固定的单元格引用(列标签):
=AVERAGE(OFFSET($E$1; 使用ROW(),它返回中行的编号/位置
表格并乘以24,以得到24的倍数偏移量-
因为我每天有24小时的值。这让我只计算
一次并向下拖动功能,因为偏移量增加了
结果列中的每一行,然后将“ 24”乘以1,然后
2、3、4等;
1+(ROW(A1)*24); 列中没有偏移量:
0;
24行范围(旨在从每小时开始计算每日平均值
值):
24; 最后,以1作为列范围
1)).
=AVERAGE(OFFSET($E$1;1+(ROW(A1)*24);0;24;1)) 这是我数据库中的一小部分:CREATE TABLE daily_emission_averages (
date_hourly TEXT,
time TEXT,
PM10_hourly INTEGER);
INSERT INTO daily_emission_averages (date_hourly, time, PM10_hourly)
VALUES (1/1/2016, 1:00, 28),
VALUES (1/1/2016, 2:00, 31),
VALUES (1/1/2016, 3:00, 28),
VALUES (1/1/2016, 4:00, 21),
VALUES (1/2/2016, 1:00, 12),
VALUES (1/2/2016, 2:00, 13),
VALUES (1/2/2016, 3:00, 23),
VALUES (1/2/2016, 4:00, 25),
VALUES (1/3/2016, 1:00, 2),
VALUES (1/3/2016, 2:00, 9),
VALUES (1/3/2016, 3:00, 7),
VALUES (1/3/2016, 4:00, 7);
为简化代码,我仅包含四个每日值。因此,计算4小时平均值而不是每日平均值。1 个答案:答案 0 :(得分:0)如果您想获得每日平均值,则可以使用:-SELECT date_hourly,avg(pm10_hourly) FROM daily_emission_averages GROUP BY date_hourly;
按日期排列组,而不是每天假设24行。也就是说,在对aggregate functions进行分组时,可以使用具有相同日期的所有行作为单个行,例如可以使用 av 。使用SQL(已更正),使用建议的查询的结果是:-
尽管按 date_hourly 分组是可行的,因为每个日期都是唯一的,但使用月/日/年格式的日期比较麻烦,因此不建议使用例如,如果您希望使用ORDER BY date_hourly按日期对结果进行排序(如果添加了日期1/10 / 2016、1 / 12/2016和1/13/2016的数据):->
即2016年1月2日被认为是在1/10/2016之后
一种解决方案可能是使用笨拙/复杂的ORDER BY子句,例如ORDER BY
(substr(date_hourly,length(date_hourly) -3,4) * 10000)
+
(substr(date_hourly,1,instr(date_hourly,'/')-1) * 100)
+ substr(date_hourly,instr(date_hourly,'/')+1, instr(substr(date_hourly,instr(date_hourly,'/')+1),'/')-1)
更好的解决方案是在存储数据时使用可识别的日期格式*(请参阅下面链接中的时间字符串)**。 DD-MM-YYYY,那么不仅可以轻松地对数据进行分组,还可以轻松地对数据进行排序,还可以通过Date/Time functions 轻松地对其进行提取和操作
}

我要回帖

更多关于 怎么求不连续单元格的平均值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信