首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从x条记录中选择SUM、MAX、MIN、AVG,每组5条

从x条记录中选择SUM、MAX、MIN、AVG,每组5条
EN

Stack Overflow用户
提问于 2015-06-18 17:27:47
回答 1查看 116关注 0票数 0

我正在尝试创建一个对结果集进行计算的查询,它选择SUM、MIN、MAX、AVG,但没有可靠的标准。

以下是我正在处理的一些数据。

代码语言:javascript
复制
ITEM   VALUE  doe
10703   3     01/05/2015 06:48
10703   3     01/05/2015 06:49
10419   -16   01/05/2015 06:54
10259   4     01/05/2015 07:09
10578   5     01/05/2015 07:39
10196   2     01/05/2015 07:52
10580   -16   01/05/2015 08:07
10872   2     01/05/2015 08:22
10872   2     03/05/2015 08:23
10619   6     03/05/2015 08:32
10663   -5    03/05/2015 08:55
10652   -4    03/05/2015 09:09
10637   3     03/05/2015 09:23
10650   -2    04/05/2015 09:35

我尝试了下面的SQL -

代码语言:javascript
复制
SELECT t0.*, SUM(t0.VALUE) as SUMA, MAX(t0.VALUE) AS MAX, MIN(t0.VALUE) AS MIN, AVG(t0.VALUE) AS AVG FROM ( SELECT ITEM, VALUE, doe FROM VALUES WHERE doe between '01/05/2015 00:00:00' AND '01/05/2015 23:59:59' ORDER BY doe LIMIT 5 ) t0 
UNION ALL 
SELECT t1.*, SUM(t1.VALUE) as SUMA, MAX(t1.VALUE) AS MAX, MIN(t1.VALUE) AS MIN, AVG(t1.VALUE) AS AVG FROM ( SELECT ITEM, VALUE, doe FROM VALUES WHERE doe between '03/05/2015 00:00:00' AND '03/05/2015 23:59:59' ORDER BY doe LIMIT 5 ) t1

等等。

结果将如下所示

代码语言:javascript
复制
SUMA   MAX   MIN  AVG  ITEM   DOE
-1     5     -16  0.2  10703  01/05/2015 06:48
8      10    -5   -1   10652  03/05/2015 08:32

这可以完成工作,但是如果有一个日期有一个值,5的组是不完整的,因此这会破坏数据,因为我正在使用它来进行六西格玛统计。

基本上,我需要能够选择它在组中看到的每五条记录,直到它到达十个组,我还没有找到一种方法来做到这一点,所以我被迫寻求帮助!

如果有人能建议我能做些什么,我将不胜感激。

如果需要更多信息,请联系

EN

回答 1

Stack Overflow用户

发布于 2015-06-18 18:16:52

我不确定为什么会同时涉及表T0/T1和UNION。这是显示问题所必需的吗?我也认为其他的是正确的,它不应该运行,因为你在查询中有T0.*,所以它不会自动分组任何东西。不过,只使用聚合的查询是有效的。

至于问题,我不能完全确定你想要什么,但是你不能在你的聚合中做一个计数,并排除任何不包含5行的吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30911521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档