请教如何用SQL对每个小时内的数据进行统计?求高手指点,谢谢!

假如现在有个表A,里面有字段:时间、号码,如下:2011-01-2300:23:34a2011-01-2300:35:31a2011-01-2302:44:34a2011... 假如现在有个表A,里面有字段:时间、号码,如下:
2011-01-23 00:23:34 a
2011-01-23 00:35:31 a
2011-01-23 02:44:34 a
2011-01-23 02:52:12 b
2011-01-23 04:23:34 c
2011-01-23 04:11:03 d
2011-01-23 04:05:34 c
2011-01-23 05:23:21 b
1、现在需要统计出每个小时内的数量(不剔重),比如最终结果为:

2011-01-23 00 2
2011-01-23 02 2
2011-01-23 04 3
2011-01-23 05 1

2.需统计出每小时内的不重复的数量,比如最终结果为:

2011-01-23 00 1
2011-01-23 02 2
2011-01-23 04 2
2011-01-23 05 1
展开
 我来答
guliaoyong
2012-02-17 · 超过18用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:27.8万
展开全部
select '2011-01-23 00:23:34' 日期 ,'a' 内容 into #temp union
select '2011-01-23 00:35:31','a' union
select '2011-01-23 02:44:34','a' union
select '2011-01-23 02:52:12','b' union
select '2011-01-23 04:23:34','c' union
select '2011-01-23 04:11:03','d' union
select '2011-01-23 04:05:34','c' union
select '2011-01-23 05:23:21','b'

select convert(varchar(13),日期,120),count(内容)
from #temp
group by convert(varchar(13),日期,120)

select convert(varchar(13),日期,120),count(distinct 内容)
from #temp
group by convert(varchar(13),日期,120)
flyingFish211
2012-02-17 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
1)
select 时间, count(号码) from A
GROUP BY to_char(时间, 'yyyy-mm-dd hh')

2)
select 时间, count(distinct 号码) from A
GROUP BY to_char(时间, 'yyyy-mm-dd hh')

to_char(时间, 'yyyy-mm-dd hh')
不同数据库这里不一样,就是把小时提取出来就可以了,不同数据库系统要做相应转换
更多追问追答
追问
请问为什么运行时系统提示'to_char' 不是可以识别的 函数名。
追答
因为你的数据库不支持吧,这里你想个办法拿到yyyy-mm-dd hh就可以了
实在不行substring都可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式