SQL查询语句:如何将一列连续数值大于某个值的数据行进行统计
id状态数据时间110422016/7/121232016/7/231001542016/7/341200762016/7/45130042016/7/561400642...
id 状态 数据 时间
1 10 42 2016/7/1
2 12 3 2016/7/2
3 1001 54 2016/7/3
4 1200 76 2016/7/4
5 1300 4 2016/7/5
6 1400 64 2016/7/6
7 20 26 2016/7/7
8 201 42 2016/7/8
9 2000 23 2016/7/9
10 2002 74 2016/7/10
11 20 29 2016/7/11
状态连续》1000的效果:
开始ID 结束ID 最大值 最小值 平均值 开始时间 结束时间
3 6 76 4 49.5 2016/7/3 2016/7/6
9 10 74 23 48.5 2016/7/9 2016/7/10 展开
1 10 42 2016/7/1
2 12 3 2016/7/2
3 1001 54 2016/7/3
4 1200 76 2016/7/4
5 1300 4 2016/7/5
6 1400 64 2016/7/6
7 20 26 2016/7/7
8 201 42 2016/7/8
9 2000 23 2016/7/9
10 2002 74 2016/7/10
11 20 29 2016/7/11
状态连续》1000的效果:
开始ID 结束ID 最大值 最小值 平均值 开始时间 结束时间
3 6 76 4 49.5 2016/7/3 2016/7/6
9 10 74 23 48.5 2016/7/9 2016/7/10 展开
1个回答
展开全部
就当你用的是SQL Server吧
SELECT
MIN (id) 开始ID,
MAX (ID) 结束ID,
MAX (数据) 最大值,
MIN (数据) 最小值,
AVG (数据) 平均值,
MIN (时间) 开始时间,
MAX (时间) 结束时间
FROM
(
SELECT
row_number () OVER (ORDER BY id) rowid ,*
FROM
t
WHERE
状态 >= 1000
) tn
GROUP BY
rowid - id
ORDER BY
MIN (id)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询