oracle-SQL 多时间段查询 求SQL大牛帮忙

问题描述

SQL 多时间段查询 求SQL大牛帮忙

表数据如下
code val date
1 1 2014-07-16 08:03:01
1 2 2014-07-16 08:10:00
1 3 2014-07-16 08:15:11
1 5 2014-07-16 08:40:01
1 2 2014-07-16 09:01:09
1 6 2014-07-16 09:20:21
1 3 2014-07-16 09:50:30
1 1 2014-07-16 10:20:22
1 2 2014-07-16 10:33:32
1 6 2014-07-16 11:40:01
1 3 2014-07-16 12:30:22

2 1 2014-07-16 08:03:01
2 2 2014-07-16 08:10:00
2 3 2014-07-16 09:15:11
2 5 2014-07-16 09:40:01
2 2 2014-07-16 10:01:09
2 6 2014-07-16 11:20:21
2 3 2014-07-16 11:50:30

3 1 2014-07-16 08:20:22
3 2 2014-07-16 09:33:32
3 6 2014-07-16 10:40:01
3 3 2014-07-16 11:30:22

分别求出每个code 1小时数据内val总和,2小时数据内val总和,
3小时数据内val总和,6小时数据内val总和

假设当前时间为2014-07-16 12:00:00

解决方案

select sum(val),code,h from (select code,val,datediff(hh,'2014-07-16 12:00:00',date as h) from t) as a
group by code,h 以此为蓝本就出来了

时间: 2024-10-22 02:53:01

oracle-SQL 多时间段查询 求SQL大牛帮忙的相关文章

希望大神帮忙-关于SQL 的操作,求大神帮忙

问题描述 关于SQL 的操作,求大神帮忙 求大神帮忙做,就两道题.截图.代码都可以!!!求助 触发器设置: 1.任意方式自定义创建一张表. 2.使用触发器控制表插入操作时某个字段不能为空,如果为空回滚操作. 3.任意方式插入一条数据,并且使得触发器检查字段内容为空. 用户安全设置: 1.自定义创建一张表. 2.自定义创建登陆用户和数据库用户. 3.为相关用户提供某个表的插入权限. 4.使用相应帐号登陆数据库管理工具. 5.向表中插入若干条记录. 6.退出帐号后使用windows帐号登陆数据库管理

java 执行 sql 文件报错 求大神帮忙解决 急急急!!!!

问题描述 java 执行 sql 文件报错 求大神帮忙解决 急急急!!!! sql文件里边的内容 /* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50096 Source Host : localhost:3306 Source Database : cemscenter1 Target Server Type : MYSQL Target Server Version :

数据-sql语句出错,求大神帮忙解答

问题描述 sql语句出错,求大神帮忙解答 CREATE PROCEDURE test() BEGIN DECLARE fid int; DECLARE days int DEFAULT 1; DECLARE s int default 0; DECLARE company_code VARCHAR; DECLARE cursor_company CURSOR FOR SELECT company FROM test WHERE status = 3; DECLARE CONTINUE HANDL

.net-sql列转行,求sql大神帮忙解决。

问题描述 sql列转行,求sql大神帮忙解决. 如题 姓名 部门 题目ID 题目答案 A 编辑部 1 tt A 编辑部 2 yy A 编辑部 3 hh B 测试部 1 tt B 测试部 3 cc 我想要这样的结果 姓名 部门 第一题 第二题 第三题 ...等 A 编辑部 tt yy hh B 测试部 tt NULL CC 解决方案 你的题目只有1,2,3还是不确定呢 解决方案二: SELECT distinct 姓名 ,部门 ,LEFT(UserList,LEN(UserList)-1) as

sql多条件查询,如何高效组合多个条件

问题描述 sql多条件查询,如何高效组合多个条件 我想查询数据库,是条件查询,但是这个条件有可能比较多,比如有几百个条件,如何写一条sql语句能高效查询数据库中满足这些条件的数据呢? 例如,我想查询userid字段为a,b,c,d--等人的数据,这样写sql感觉效率很低 select * from TABLE where USERID=a or USERID= b or USERID=c-- 有什么方法能比较好的满足查询要求呢? 解决方案 用in不能实现吗?比如 select * from TA

关于SQL server语句查询统计问题

问题描述 关于SQL server语句查询统计问题 如果相同的Jointno算一个检测口,这一个检测口里有一个是不合格的 那么这个检测口就是不合格,如何统计合格的检测口里的合格数量? 查询生成的结果 Weldercode|合格数 SFCC-124 | 3 解决方案 哥们,对不对?对的话麻烦结贴. 解决方案二: 我这里设置table名为A select count(C.Lineno) as '合格数' from(select Linenocount(Lineno) as 'count' from

SQL数据分页查询的方法_MsSql

最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5条了) 方法一: select top 5 * from [StuDB].[dbo].[ScoreInfo] where [SID] not in (select top 10 [SID] from [StuDB].[dbo].[ScoreInfo] order by [SID]) order by

SQL Server阻塞查询语句

SQL Server阻塞查询语句  SQL Server的阻塞查询主要来自sys.sysprocesses.通常在处理时需要加入其它相关的视图或表,例如如sys.dm_exec_connections,sys.dm_exec_sql_text.通过如下几个语句的查询,可以找到阻塞的语句. 点击(此处)折叠或打开 SELECT BL.SPID BLOCKING_SESSION,        BL.BLOCKED BLOCKED_SESSION,        ST.TEXT BLOCKEDTEX

SqlServer 按时间段查询问题

百度的资料,保存下来: 在写按时间段查询的sql语句的时候 一般我们会这么写查询条件: where date>='2010-01-01' and date<='2010-10-1' 但是在实执行Sql时些语句会转换成这样: where date>='2010-01-01 0:00:00' and date<='2010-10-1:0:00:00',再看这个条件的话,也许就会有些明白, 那就是'2010-10-1 0:00:00' 之后的数据例如('2010-10-1:08:25:0