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
展开
 我来答
sysplay
推荐于2017-12-15 · TA获得超过1155个赞
知道小有建树答主
回答量:663
采纳率:86%
帮助的人:539万
展开全部

就当你用的是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)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式