请教如何用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 展开
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 展开
2个回答
展开全部
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)
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)
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
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')
不同数据库这里不一样,就是把小时提取出来就可以了,不同数据库系统要做相应转换
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都可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询