computerlover_个人页

个人头像照片 computerlover
0
4
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
  • 提交了问题 2015-12-23

    更复杂(查找错误记录,postgresql,关于月累,年累)

  • 提交了问题 2015-12-22

    查找错误记录(SQL)

暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2019-07-17

    更复杂(查找错误记录,postgresql,关于月累,年累)

    例如:id 日期 名称 单位 数据 类别 状态 备注 月累 年累 数据源1780114 2015-01-16 外供电 度 9000 电 接收 144000 144000 1780115 2015-01-16 电消耗 度 14880 电 消耗 237208 237208 -- 1780117 2015-01-16 自发电 度 5880 电 生产 93208 93208 实际月累是 932081780117 2015-01-16 自发电 度 5880 电 生产 0 93208 1780222 2015-01-17 外供电 度 8700 电 接收 152700 152700 -- 1780223 2015-01-17 电消耗 度 14628 电 消耗 251836 251836 丢失,需要找出来1780225 2015-01-17 自发电 度 5928 电 生产 99136 99136 1780288 2015-01-18 外供电 度 8100 电 接收 160800 160800 1780289 2015-01-18 电消耗 度 14340 电 消耗 266176 266176 1780291 2015-01-18 自发电 度 6240 电 生产 105376 3 -- 1780291 2015-01-18 自发电 度 6240 电 生产 105376 105376 实际年累是 266176查询结果应该是:2015-01-16 自发电 度 电 生产2015-01-17 电消耗 度 电 消耗2015-01-18 自发电 度 电 生产
    踩0 评论0
  • 提交了问题 2015-12-23

    更复杂(查找错误记录,postgresql,关于月累,年累)

  • 回答了问题 2019-07-17

    查找错误记录(SQL)

    谢谢了,下面是postgresql 的SQL写法。 -- p1 昨天的日期-- p2 当月统计数据范围内,上一条月累加值-- p3 当年统计数据范围内,上一条年累加值-- p4 当月统计数据范围内,第一条月累加值-- p5 当月统计数据范围内,第一条日值-- p6 当年统计数据范围内,第一条年累加值-- p7 当年统计数据范围内,第一条日值 select * from ( select v_d, data, month, year, lag(v_d, 1) over (order by v_d) p1, lag(month, 1) over (partition by extract(month from v_d) order by v_d) p2, lag(year, 1) over (partition by extract(year from v_d) order by v_d) p3, first_value(data) over(partition by extract(month from v_d) order by v_d) p4, first_value(month) over(partition by extract(month from v_d) order by v_d) p5, first_value(data) over(partition by extract(year from v_d) order by v_d) p6, first_value(year) over(partition by extract(year from v_d) order by v_d) p7 from tbl) twhere v_d - p1 <>1orp4 <> p5orp6 <> p7orp2+data <> monthorp3+data <> year; 不知道这种写法对不对。在这个简单例子里可以得到期望结果。 sum(data) over (partition by extract(month from v_d) order by v_d) as 计算月累,如果记录里年不都是一年,结果就不对。希望大拿帮助一下,解释partition by extract(month from v_d),谢谢了。select * from( select v_d, data, month, sum(data) over (partition by extract(month from v_d) order by v_d) as 计算月累, year, sum(data) over (partition by extract(year from v_d) order by v_d) as 计算年累, lag(v_d, 1) over (order by v_d) p1 from tbl ) twhere v_d - p1 <>1ormonth <> 计算月累oryear <> 计算年累
    踩0 评论0
  • 提交了问题 2015-12-22

    查找错误记录(SQL)

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息