SQL技巧:创建用来按小时报告的查询
浏览:24日期:2023-05-27
要创建一个可以每个小时报告的查询,首先要创建一个表格。该表格一列记录日期,而没有时间信息;另一列记录钟点。下面的表格有一列记录了不同的处理类型。例如,我们可以按小时找出处理类型的总数。;CREATE;TABLE;test(StartTime;DATETIME;NOT;NULLDEFAULT;CURRENT_TIMESTAMP,StartDate;DATETIME;NOT;NULLDEFAULT;CONVERT(DATETIME,;CONVERT(CHAR(10),CURRENT_TIMESTAMP,;110)),StartHour;INT;NOT;NULLDEFAULT;DATEPART(hh,CURRENT_TIMESTAMP),TranType;INT;NOT;NULLCONSTRAINT;ck_TranType;CHECK;(;TranType;IN(;1,;--;insert2,;--;update3,;--;delete)DEFAULT;1)GO;接下来,插入test的数据来模拟一个可能的样本。INSERT;test;(StartTime,;TranType);VALUES;(CURRENT_TIMESTAMP,;3)INSERT;test;(StartTime,;TranType);VALUES;(CURRENT_TIMESTAMP,;2)INSERT;test;(StartTime,;TranType);VALUES;(CURRENT_TIMESTAMP,;3)GODECLARE;@hr;intSET;@hr;=;DATEPART(hh,;DATEADD(hh,-1,CURRENT_TIMESTAMP);)INSERT;test;(StartTime,;TranType,;StartHour);_;;VALUES;(DATEADD(hh,-1,CURRENT_TIMESTAMP),;3,;@hr)INSERT;test;(StartTime,;TranType,;StartHour);_;;VALUES;(DATEADD(hh,-1,CURRENT_TIMESTAMP),;1,;@hr)INSERT;test;(StartTime,;TranType,;StartHour);_;;VALUES;(DATEADD(hh,-1,CURRENT_TIMESTAMP),;2,;@hr)GO;然后用一个查询来找出按日和小时的处理总数。SELECT;StartDate;tran_day,StartHour;tran_hour,;CASE;trantype;WHEN;1;THEN;'insert'WHEN;2;THEN;'update'WHEN;3;THEN;'delete'ELSE;'unknown'END;trantype,COUNT(*);tran_totalFROMTestGROUP;BYStartDate,StartHour,trantypeORDER;BY;StartDate,;StartHourCOMPUTE;SUM(COUNT(*));BY;StartDate,;StartHourGO;去掉test可以清空test表格。DROP;TABLE;testGO;
相关文章:
热门推荐

- Golang Http 验证码示例实现
- 1.IE6中a标签同时使用inline-block与text-indent时出现的BUG
- 2.Golang 如何判断数组某个元素是否存在(isset)
- 3.浏览器兼容之旅第三站:IE常见Bug总结及修复方法—part1
- 4.CSS优先级和!important与IE6的BUG讨论及解决方案
- 5.hbuilder无法访问您的文件
- 6.hbuilderhbuilder怎么安装
- 7.精益求精Sybase数据库问题大搜罗
- 8.构建Golang应用最小Docker镜像的实现
- 9.PHP设计模式之策略模式原理与用法实例分析
- 10.怎么解决360双核浏览器兼容模式的页面显示问题?解决的方法介绍
