开发者社区 问答 正文

一个纠结的sql分组查询语句

是这样的 数据库里有一张
宿舍用电表(宿舍号,时间,电表度数)
dormitoryElectric(dormitory,time,electric)
里面存的是每个小时电表上的度数,那我想查询所有宿舍近7天的每天用电度数要怎么写。
效果大概是这样的:
宿舍1 第一天用电度数 第二天用电度数 第三天用电度数 。。。
宿舍2 第一天用电度数 第二天用电度数 第三天用电度数 。。。
第二天用电度数应该是第二天的最后一次电表度数减去第一天的最后一次电表度数

展开
收起
吴孟桥 2016-06-16 17:34:51 2490 分享 版权
1 条回答
写回答
取消 提交回答
  • oracle的写法, mysql也有case when的表达式

    Select t.Dormitory,

       Sum(Case
             When t.Time >= Trunc(Sysdate) - 2 And t.Time < Trunc(Sysdate) - 1 Then
              t.Electric
             Else
              0
           End) day2ago,
       Sum(Case
             When t.Time >= Trunc(Sysdate) - 1 And t.Time < Trunc(Sysdate) - 0 Then
              t.Electric
             Else
              0
           End) day1ago

    From Dormitoryelectric t
    Group By t.Dormitory

    2019-07-17 19:41:35
    赞同 展开评论