sql查看每小时计算的最大值
需要一些SQL方面的帮助 我需要构建以下报告,但我理想情况下希望尝试使用SQL脚本来构建它,而不需要每小时运行一次过程等 我们要解决的业务问题基本上是计算一周内产品占用的最大位置数量,按小时计算 我知道我可以通过每小时运行一个程序来计算数量并将其插入表中来实现这一点。然后我会在周末查询这个表,看看哪一天哪一个小时的数字最大 理想情况下,我希望这样做而不使用程序。我编写了SQL,可以在任何时间点(比如周一上午10点到11点)告诉我数字 除了24 x 7次复制和粘贴此SQL脚本(一天中每小时1次),我还可以通过SQL脚本执行其他操作吗? 我是否可以创建一个维护表,其中列出了每天和时间段(例如列为:天、小时开始、小时结束),将其加入到我的查询中并使用max函数 我很确定这不能通过SQL完成,但我不喜欢依赖时间运行的过程(例如,如果服务器离线怎么办)sql查看每小时计算的最大值,sql,oracle,Sql,Oracle,需要一些SQL方面的帮助 我需要构建以下报告,但我理想情况下希望尝试使用SQL脚本来构建它,而不需要每小时运行一次过程等 我们要解决的业务问题基本上是计算一周内产品占用的最大位置数量,按小时计算 我知道我可以通过每小时运行一个程序来计算数量并将其插入表中来实现这一点。然后我会在周末查询这个表,看看哪一天哪一个小时的数字最大 理想情况下,我希望这样做而不使用程序。我编写了SQL,可以在任何时间点(比如周一上午10点到11点)告诉我数字 除了24 x 7次复制和粘贴此SQL脚本(一天中每小时1次),
任何建议,谢谢 假设这样的数据结构:
create table room_usage (
roomnumber number(6),
occupied_by varchar2(20),
startdate date,
enddate date
);
with datgen as
(select to_date('2008-09-19','yyyy-mm-dd')+(rownum-1)/24 d
from dual
connect by rownum<=168)
select d, (select count(*) from room_usage
where startdate<=datgen.d
and enddate>=datgen.d) occupied
from datgen;
您可以这样查询每小时占用的房间数:
create table room_usage (
roomnumber number(6),
occupied_by varchar2(20),
startdate date,
enddate date
);
with datgen as
(select to_date('2008-09-19','yyyy-mm-dd')+(rownum-1)/24 d
from dual
connect by rownum<=168)
select d, (select count(*) from room_usage
where startdate<=datgen.d
and enddate>=datgen.d) occupied
from datgen;
我相信这是可以做到的,但是你应该添加更多关于你的数据结构的细节。哇,看起来它确实会起作用。明天上班时我会试一试的,不过看起来不错!