应该是方法2快的,不过确实没做过测试如果楼主的显示格式没什么要求的话,可以这样select datepart(hh,appdate) as 时间,count(id) as 数量 from tb1 group by datepart(hh,appdate)
解决方案 »
- CSDN 的论坛是用 sqlserver 吗 ?
- 这个SQL语句如何写
- 为不影响数据检索速度,一个库应该不超过多少张表,一张表应该不超过多少条记录,请各位提出建议,谢谢!
- [版务贴]关于本版2008年7月份Microsoft MVP的提名事宜,及提名名单公示。【注:灌水勿入,否则一律删除】
- 初学数据建模的一个问题?关于"一对多"限制符号的写法(UML和ER),怎么各种书上都不一样的???100分送出!
- 如何根据其他表的情况来update表?
- 请助几十个数据表且字段不一样,表之间没有任何关系做一个系统 Search
- 如何使用SQL将数据库A的表A_table1的数据,存储到数据库B的表B_table1中?
- 编写存储过程的新问题!!急!急!急!急!急!
- 初学者求助,向两张表添加一条记录功能,求前辈们帮忙进来看看,该怎么做
- 在线等-----偶是菜鸟,有些个“全文索引”的问题请教诸位先学
- sql查询一定时间段内的数据
hh = datepart(hh,appdate),
num = count(*)
from
tb1
group by
datepart(hh,appdate)
a.[HOUR],
ISNULL(b.[NUM],0)
FROM
(SELECT 1 AS [HOUR]
UNION SELECT 2
UNION SELECT 3
UNION SELECT 4
UNION SELECT 5
UNION SELECT 6
UNION SELECT 7
UNION SELECT 8
UNION SELECT 9
UNION SELECT 10
UNION SELECT 11
UNION SELECT 12) a
LEFT JOIN
(SELECT
[HOUR] = DATEPART(HH,appdate),
[NUM] = COUNT(*)
FROM
tb1
GROUP BY
DATEPART(HH,appdate)) b
ON
a.[HOUR] = b.[HOUR]
a.[HOUR],
ISNULL(b.[NUM],0)
FROM
(SELECT 0 AS [HOUR]
UNION SELECT 1
UNION SELECT 2
UNION SELECT 3
UNION SELECT 4
UNION SELECT 5
UNION SELECT 6
UNION SELECT 7
UNION SELECT 8
UNION SELECT 9
UNION SELECT 10
UNION SELECT 11
UNION SELECT 12
UNION SELECT 13
UNION SELECT 14
UNION SELECT 15
UNION SELECT 16
UNION SELECT 17
UNION SELECT 18
UNION SELECT 19
UNION SELECT 20
UNION SELECT 21
UNION SELECT 22
UNION SELECT 23) a
LEFT JOIN
(SELECT
[HOUR] = DATEPART(HH,appdate),
[NUM] = COUNT(*)
FROM
tb1
GROUP BY
DATEPART(HH,appdate)) b
ON
a.[HOUR] = b.[HOUR]