我试图通过从每50行抓取5个值并将它们加在一起来对其进行采样来分析一些数据。
数据看起来像这样 -
Col 1
177
177
177
177
174
174
174
166
166
166
166
170
170
170
170
171
171
171
171
174
174
174
174
168
168
168
168
172
172
172
172
172
171
171
171
171
171
171
171
170
170
170
170
170
171
171
171
174
174
174
174
171
171
171
171
169
169
169
169
169
171
171
171
172
172
172
172
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
171
172
172
172
172
170
170
170
170
171
我可以通过使用UNION来管理它,但它看起来非常混乱,并且想知道是否有任何好的解决方案可以做到这一点?
答案 0 :(得分:2)
您可以使用MySQL User-Defined Variables获取行号和组号。此查询返回每个50的5个值的总和。我已经添加了ID来归档这些值,您应该使用ORDER BY您的身份归档到订单值。
SELECT GroupID,
SUM(Col1) as SumOfCol1
FROM
(
SELECT T.*,
@counter := IF(@counter>=50,1,@counter + 1) as counter,
@GroupID := IF(@counter=1,@GroupId + 1,@GroupId) as GroupID
FROM T,
(SELECT @counter :=0,@GroupID := 0) r
ORDER BY ID
) T1
WHERE Counter<=5
GROUP BY GroupID
答案 1 :(得分:-2)
select sum(data) from
(
select distinct data from table limit 0,50;
union
select distinct data from table limit 50,50;
union
select distinct data from table limit 100,50;
union
select distinct data from table limit 150,50;
)temp;
这将从子查询中获取给定限制的不同数据。 主要查询总结了它。