获取SQL中每X行的平均值

获取SQL中每X行的平均值,第1张

获取SQL中每X行的平均值

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

SELECt   ChunkStart = Min(Id),   ChunkEnd = Max(Id),   Value = Avg(Value)FROM   (      SELECt         Chunk = NTILE(5) OVER (ORDER BY Id),         *      FROM         YourTable   ) AS TGROUP BY   ChunkORDER BY    ChunkStart;

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

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

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

我在这里做了一些假设,例如

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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5476032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存