获取SQL中每X行的平均值

道格拉斯·范妮(Douglas Vanny)

假设我有下表

+----+-------+
| Id | Value |
+----+-------+
|  1 |   2.0 |
|  2 |   8.0 |
|  3 |   3.0 |
|  4 |   9.0 |
|  5 |   1.0 |
|  6 |   4.0 |
|  7 |   2.5 |
|  8 |   6.5 |
+----+-------+

我想绘制这些值,但是由于我的真实表有成千上万个值,因此我考虑了获取每X行的平均值。我有什么办法可以做到这一点,即每2或4行,如下所示:

2
+-----+------+
| 1-2 |  5.0 |
| 3-4 |  6.0 |
| 5-6 |  2.5 |
| 7-8 |  4.5 |
+-----+------+

4
+-----+------+
| 1-4 |  5.5 |
| 5-8 |  3.5 |
+-----+------+

另外,是否有任何方法可以根据表中的总行数使此X值动态化?像这样,如果我有1000行,则将基于每200行(1000/5)计算平均值,但如果我有20行,则应基于每4行(20/5)计算平均值。

我知道如何以编程方式执行此操作,但是使用纯SQL是否可以执行此操作?

编辑:我需要它在mysql上工作。

埃里克

根据您的DBMS,类似这样的方法将起作用:

SELECT
   ChunkStart = Min(Id),
   ChunkEnd = Max(Id),
   Value = Avg(Value)
FROM
   (
      SELECT
         Chunk = NTILE(5) OVER (ORDER BY Id),
         *
      FROM
         YourTable
   ) AS T
GROUP BY
   Chunk
ORDER BY 
   ChunkStart;

无论您有多少行,这都会创建5个组或块。

如果您没有开窗功能,则可以伪造它:

SELECT
   ChunkStart = Min(Id),
   ChunkEnd = Max(Id),
   Value = Avg(Value)
FROM
   YourTable
GROUP BY
   (Id - 1) / (((SELECT Count(*) FROM YourTable) + 4) / 5)
;

我在这里做了一些假设,例如Id从1开始并且没有间隔,并且如果事情没有平均分配,那么您将希望最后一组不要太小而不是太大。我还假定整数除法将导致在SQL Server中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算Excel中每x连续行的累积平均值(不要与“每x行间隙间隔的平均值”相混淆)

来自分类Dev

MySQL获取一组中每x分钟的列的平均值和总和

来自分类Dev

快速获取.npy数组中每N行平均值的快速方法

来自分类Dev

获取数组中每n个值的平均值

来自分类Dev

如何获取数据框中每列的平均值

来自分类Dev

Excel中每n行的平均值

来自分类Dev

MYSQL中每一行的平均值

来自分类Dev

获取每N组的平均值

来自分类Dev

SQL Server默认值x行的平均值

来自分类Dev

从表中的“最后” N行获取平均值

来自分类Dev

从所选行中获取值并计算其平均值

来自分类Dev

获取T-SQL中列的运行平均值

来自分类Dev

SQL:获取每个基金中股票的平均值

来自分类Dev

SQL命令从平均值中获取计数(即n)

来自分类Dev

如何使用条件参数获取SQL中的平均值

来自分类Dev

在ORACLE中获取近三天sql的平均值

来自分类Dev

Elasticsearch查询以获取每x分钟/小时/天的中位数/平均值

来自分类Dev

如何获取每n行的平均值并保持日期索引?

来自分类Dev

如何获取包含缺失数字的每一行的平均值?

来自分类Dev

获取子查询SQL的平均值

来自分类Dev

使用熊猫,每x行的平均值,每个子集的步长为y

来自分类Dev

使用熊猫,每x行的平均值,每个子集的步长为y

来自分类Dev

获取Apache Pig中每N个元组的平均值

来自分类Dev

如何获取Mongo中特定日期每一小时的平均值?

来自分类Dev

如何获取Mongo中特定日期每一小时的平均值?

来自分类Dev

从数组中获取平均值

来自分类Dev

获取数组中对象的平均值

来自分类Dev

pandas:计算一列中每一行的numpy数组的平均值

来自分类Dev

计算数据帧中每13行的平均值

Related 相关文章

热门标签

归档