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

问题描述

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

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

解决方案

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

解决方案二:

一个值得纪念的SQL查询语句

解决方案三:

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

解决方案四:

在@寒心孤瞳 的基础下已经完成 谢谢大家

时间: 2024-08-03 21:44:49

java-一个纠结的sql分组查询语句的相关文章

sql 对相对数据进行分组查询语句

sql 对相对数据进行分组查询语句 /* | section | province | area   | zone | postcode | cardtype                 | telco  | | 1879728 | 青海      | 共和         | 0974 | 813000   | 移动187卡                   | 移动   | | 1879741 | 湖南      | 长沙         | 0731 | 410000   | 移动1

关于sql server查询语句的写法。

问题描述 关于sql server查询语句的写法. 怎样写一个查询语句select distinct ID from TrainTime order by ID select Station from TrainTime where S_No='1'order by ID select Stationfrom TrainTime where D_Time='-' order by ID 怎样把这3个查询语句写为一句啊,让查询查来的结果为这3列数据. 因为我想建一个表,为3列,列名为:列车车次.起

sql高级查询语句 麻烦大家了

问题描述 sql高级查询语句 麻烦大家了 --28)查询选修了课程名为"数据库"的学生的学号和姓名. select sname,sno from course,student where course.cno in( select cno from course where cname='sql') and course.cname=student.sno group by sname having count(cname)='sql' 显示错误 出不来 解决方案 sql高级查询语句

sqlserver2012 一个字段按区间分组查询

问题描述 sqlserver2012 一个字段按区间分组查询 字段内容:0,0,1,1,2,5,8,8,1,2,6,8,4,1 按0-3,4-6,7-9,10-14分组 得出结果0-3 84-6 37-10 3 解决方案 select 0-3"" f1cnt 数量 from (select count(*) cnt from 表 where 字段>=0 and 字段<=3 ) aunion all select ""4-6"" f1c

sql-【SQL求助】用SQL Server查询语句中,IN 的使用问题。

问题描述 [SQL求助]用SQL Server查询语句中,IN 的使用问题. 我想查询一辆车在一个月内的记录.于是编写了如下代码: select * from 北京车辆能耗数据.dbo.北京朝批商贸股份有限公司 where ( [列 0] in ('京AC3537') and CAST ([列 2] as datetime)>'2013/11/1 00:00:00' and CAST ([列 2] as datetime)<'2013/12/1 00:00:00' ) order by CAS

SQL嵌套查询语句的报错问题

问题描述 SQL嵌套查询语句的报错问题 5C String sql = ""select * from msgInfo where ID in(select top 15 ID from msgInfo where chatRoom=? Order by chatTime DESC) order by chatTime""; String userName=session.getAttribute(""_USER"").toS

sql查询-sql求查询语句 !!!

问题描述 sql求查询语句 !!! 我有一张表 序号 姓名 编号 学科_1 成绩_1 学科_2 成绩_2 学科_3 成绩_3 1 张三 1001 A学科 60 B学科 70 C学科 80 2 李四 1002 A学科 70 B学科 80 C学科 90 3 王五 1003 A学科 60 B学科 80 C学科 90 学科可能有很多,不确定!可能还有 学科_4 成绩_4 想要实现的结果 序号 查询张三的记录结果 序号 姓名 编号 A学科 b学科 C学科 未知学科 1 张三 1001 60 70 80 未

ms sql-MS SQL 分组查询的疑问。

问题描述 MS SQL 分组查询的疑问. 我突然间对数据库的分组查询好像忘得差不多了,也突然变得不太理解.(解决问题) 如,表结构: Table Name:TEST ID name sex(bit) area ----------------------------- 1 mr.a 1 CN 2 mr.b 1 USA 3 mr.c 1 CN 4 mr.d 0 USA 5 mr.e 0 JP 6 mr.f 1 USA ----------------------------- GROUP 如何查询

ruby sql select 查询语句用法

ruby sql select 查询语句用法 require 'mysql教程' m = Mysql.new("localhost","ruby","secret","maillist") r = m.query("SELECT * FROM people ORDER BY name") r.each_hash do |f|   print "#{f['name']} - #{f['email']