SQL SERVER 统计24小时内每小时添加的数据 1C

如何统计24小时内,每小时发布的条数?
图片说明

想得到如下结果:

number value
0 0
1 1
2 1
3 0
4 0
5 0
6 0
7 0
8 0
9 1
10 0
11 0
12 0
13 0
14 0
15 0
16 0
17 0
18 0
19 0
20 0
21 0
22 0
23 0

sql
0

7个回答

select sv.number, sum(case when t.time IS NOT NULL THEN 1 ELSE 0 end) value
FROM master..spt_values AS sv

LEFT JOIN tests AS t ON sv.number=DATEPART(hh,t.time)
WHERE sv.type='P' and sv.number BETWEEN 0 AND 23
group by sv.number

1
mcj2052239
fcmz 已通过测试
大约 3 年之前 回复
0
sd2208464
sd2208464 没有需要的功能。
3 年多之前 回复

用substring等,取出小时,然后再对它进行group by 分组

0
HTBALC
HTBALCc select * from ( select nday, ntime,count(user_id) as num from ( select distinct to_char(time, 'yyyy-mm-dd') as nday, to_char(time, 'HH24') as ntime, title from 表名 where 1 = 1 and time >= date'2016-02-25' and time < date'2016-02-26' ) group by nday, ntime ) pivot(sum(num) for ntime in (00,01, 02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21, 22,23))
3 年多之前 回复
sd2208464
sd2208464 这样的方式只能获取到有数据的时间。比如1点、2点、9点。其他的都没有。需求是没有数据的点值为0
3 年多之前 回复

对于0可以用when else啊

0

不在一天的要分开统计吧?

 select DATEPART(hh,[time]),count(title) from tests
group by CONVERT(varchar,[time],102),DATEPART(hh,[time])
0

如果没有的时间也要,改成:

 select sv.number ,count(title) 
FROM master..spt_values AS sv  
LEFT JOIN tests AS t ON sv.number=t.DATEPART(hh,[time])
WHERE sv.type='P'  and sv.number BETWEEN 0 AND 24
group by CONVERT(varchar,[time],102),DATEPART(hh,[time])
0

上面的没有测试:

 WITH tests([time],title) AS (
    SELECT '2016-03-22 1:12:00','a' UNION ALL
    SELECT '2016-03-22 2:12:00','b' UNION ALL
    SELECT '2016-03-22 9:12:00','c' 
    )

select sv.number ,count(title) 
FROM master..spt_values AS sv  
LEFT JOIN tests AS t ON sv.number=DATEPART(hh,t.[time])
WHERE sv.type='P'  and sv.number BETWEEN 0 AND 24
group by CONVERT(varchar,[time],102), sv.number
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何统计一天24小时每个小时的数据量
--1.创建测试表 create table test (dtime date); --2.循环插入测试数据 begin     for i in 1..50000 loop      insert into test      select *    from (select rownum rn,                to_date('2017-09-01',
SQL语句统计每小时,每天、每月、每年的_数据
--by hours SELECT TO_CHAR(oper_time, 'hh24') AS "Each HOUR", COUNT(id) AS qty FROM T_SYS_OPER_LOG   WHERE  oper_time  BETWEEN TO_DATE('2014-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss') AND TO_DATE('201
获取一天24小时每小时的订单数量,没有的置为0
select d.hours,case when o.num is null then 0 else o.num end as number from (select count(*)as num,HOUR(create_TIME)as hour from at_order where DATE_FORMAT(create_TIME,'%Y-%m-%d')='2018-11-15' GROUP...
SQL server 按小时统计一天的数据
select right(100+a,2)+ ' -- '+right(100+b,2)+ ' ' as DtTime,  sum( case when datepart(hour,DtTime)> =a and datepart(hour,DtTime) from DtRecords c , (select 0 a,1 b union all select 1,2 union all se
SqlServer 根据开始结束小时查询每个小时的时间
DECLARE @BeginTime CHAR(19) = '2018-03-14 08:00:00'; DECLARE @EndTime CHAR(19) = '2018-03-15 08:00:00'; WITH SQL1 AS ( select convert(varchar(13),dateadd(HH,sv.number,@BeginTime),120) as [date] f...
oracle查询符合当天并查出每个小时中数据的总数量
SELECT TO_CHAR (TE.MODDATE, 'hh24') AS TT, COUNT (*) AS TOTAL FROM T_B_EXACTDETECT TE --所需要查询数据的表名 WHERE TO_CHAR ( TRUNC (TE.MODDATE), 'yyyy-mm-dd') = ( SELECT TO_CHAR (SYSDATE, 'yyyy-m...
mysql中怎么查询一天24小时的数据量
因为业务需求我也是查了百度,有给出一些sql,我现在再总结一下 我这里是比较两个时间,所以会使用到两个sql mysql中查询一天中每一个小时的记录数量 select count(*) as orderCounts from ec_order o WHERE o.order_type=1 AND o.order_time &amp;amp;gt;= str_to_date('2018-04-11 00:0...
Mysql 查询一天中,每个小时数据的数量
SELECT HOUR(e.time) as Hour,count(*) as Count FROM error_log e WHERE e.date = '2017-09-02' GROUP BY HOUR(e.time) ORDER BY Hour(e.time); 下面是查询结果截图 在另一篇文章里,我总结了查询每半小时统计一次的方法。Mysql...
sql分钟数据求平均得到小时数据
1.datetime转成字符串    convert(varchar,MONIDATE,120)    截取到小时    substring(convert(varchar,MONIDATE,120),0,14)    再转成“2016-09-21 17:00:00”的格式,方便入库    substring(convert(varchar,MONIDATE,120),0,14)+':0
Mysql统计每个小时或半小时数据的数量
Mysql 查询一天中,每个小时数据的数量 Mysql 查询一天中每半小时记录的数量
mysql 查询24小时内 数据,null用0代替
由于数据库中group by语句分类筛选为空的时间段酒无法显示 所以如果数据不全时,我们使用DATE_FORMAT(create_time, '%H')这个函数也无法获取完整的24小时数据,使用下面这种方法将没有数据的时间短用0代替 完整语句如下: SELECT dayHour, IF(count IS NULL, 0, count) FROM (SELECT coun
如何统计每个小时用户在线人数?
系统有一个表记录用户登录、登出的日志,现在以一个小时为段,统计出在线人数,这是一个数学问题。 情况1:                |___________一个小时____________|                  <=登录时间         登出时间 情况2:                |___________一个小时____________|  登录时间
使用hive和sqoop来实现统计24小时每个时段的PV和UV
【案例】使用hive和sqoop来实现网站基本指标,PV和UV 1、PV统计网页浏览总量 2、UV去重 -》【需求】统计24小时每个时段的PV和UV -》建分区表,按天一级,按小时一级,多级分区 -》第一步分析需求 -》第二步获取时间字段,天,小时 -》对于时间格式进行数据清洗,比如:2015-08-28 18:10:00,从中获取日期和小时 -》获取需要有用的字段:id、url、
mysql group by一天24小时,每小时数据都显示出来,没有数据补0实现
参考:mysql group by分组查询统计数据时,在没有数据时如何自动补0 最终我自己实现的sql如下: SELECT a.hour hour, ifnull(b.count, 0) count FROM ( SELECT 0 hour UNION ALL SELECT 1 hour UNION ALL SELECT 2 hour UNION ALL SELECT 3 hour UNION A...
请教如何实现SQL查询24小时内,当前时间之前20分钟的信息
假如要搜索一个ID号码,现在时间是8点整,要求搜索7点40之前的id号,但时间不能超过8点之前的24个小时。 ------解决方案-------------------- --try select * from tbName where datediff(hour, DateField, getdate()) and datediff(minute, DateField, ge
MySQL按时间统计每个小时记录数
MySQL按时间统计每个小时记录数方案1:SELECT @rownum := @rownum + 1 AS ID, CONCAT((CASE WHEN t.hour = 24 THEN 0 ELSE t.hour END),':00:00') AS TIME, COUNT(*) AS COUNT FROM (SELECT id, HOUR(DATE_FORMAT(createtim
oracle查询最近一小时的数据
SELECT * from t_traffic_accident where ACCIDENT_TIME &amp;gt; (sysdate - to_dsinterval('0 1:00:00')) and ACCIDENT_TIME &amp;lt; sysdate
Mysql 查询当前时间24小时内的数据
记录一下mysql查询24小时内的sql语句 where time &amp;gt;=(NOW() - interval 24 hour)  
SqlServer根据时段统计数据
create table ST_PPTN_R_Real ( TID int primary key identity(1,1), STCD varchar(100) not null, TM datetime not null, DRP decimal(8,2)  ) go   insert into ST_PPTN_R_Real values('龙谷站点','2013-05-0
SQL将一天分段分为8点到18点统计没半个小时一分组分成22组
1、原始数据如下: 2、利用分组求和计算出一天内小时与分合计 select  ( case when length( extract(hour  from  cast (oper_date as timestamp)) )&amp;lt;2 then '0'|| extract(hour  from  cast (oper_date as timestamp)) else to_char( ext...
使用SQL返回按小时排序的统计数据
使用 datepart(hour,createddate) select personviews = count(*),datepart(hour,createddate)+1 from Orders where createddate  between @StartDate and @EndDate  group by datepart(hour,createddate) or
Sqlite 获取一小时内数据sql
概述项目中用到了Sqlite数据库,需要查询距当前一小时内的数据,由于对Sqlite不熟,各种百度找答案,查到了很多日期函数,但是就是不起作用,最后经过摸索最终解决该问题,在此记录一下,有需要的小伙伴也可以看一下。1.查询距当前时间一小时内的数据SELECT * FROM table_name t where datetime(t.create_time) &amp;gt; datetime('now',...
sql 获取24小时列表
/*分时临时表*/ CREATE TABLE #tmpTime ( TimeValue VARCHAR(10) ) /*每小时列表*/ /*8:00-24:00*/ INSERT INTO #tmpTime ( TimeValue ) SELECT RIGHT('00' + CAST(number AS VAR
mysql 统计一天24小时数据默认补0SQL
利用mysql的函数实现统计查询一天24小时的数据,然后统计时间没有的数据默认补上了零。
SQL语句查询最近几天,几个小时的数据的写法
几个小时内的数据 DATE_SUB(NOW(), INTERVAL 5(字段) HOUR)   今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名)  7天 S
Oracle数据库按每6小时和每12小时分组统计
--按六小时分组 select trunc(to_number(to_char(created_time, 'hh24')) / 6),count(*)   from t_test  where created_time &amp;gt; trunc(sysdate - 40)  group by trunc(to_number(to_char(created_time, 'hh24')) / 6) ...
sql查询值按分钟平均,小时平均,天平均
按分钟平均 select id,ROUND(AVG(value),2) as avg, date_format(time,'%Y-%m-%d %H:%i') as time from " + tablename + " where id in (:indexIds) and   time>=:starttime and time  按小时平均 select id,ROUND(AVG(
MySQL查询一小时之内的数据
 (第一种方法)SELECT * FROM 表名 WHERE 字段名>NOW()-INTERVAL 2 HOUR; (第二种方法)SELECT * FROM 表名 WHERE 字段名 > DATE_SUB(NOW(), INTERVAL 60 MINUTE);
mysql 查询一小时之内的数据
(第一种方法)SELECT * FROM 表名 WHERE 字段名>NOW()-INTERVAL 2 HOUR; (第二种方法)SELECT * FROM 表名 WHERE 字段名 > DATE_SUB(NOW(), INTERVAL 60 MINUTE);
MySQL 获取今日每个时段的数量统计(24格式)
注意时间为毫秒的时间戳。 SELECT case when FROM_UNIXTIME(wc.time_s/1000, '%H') = 0 then '0' when FROM_UNIXTIME(wc.time_s/1000, '%H') = 1 then '1' ...
elastic按小时统计当天数据
要实现这样一个功能 select count(1),小时 from user where createDate=今天 group by 每小时 原本以为很简单的一个聚合很容易找到相关资料,没想到花了好几个小时 首先建一个测试的index和type,分别为ksearch_test和user, 建立mapping http://ip:port/ksearch_test/user/_mappi
mysql 获取某个时间段每一天、每一个小时的统计数据
获取每一天的统计数据做项目的时候需要统对项目日志做分析,其中有一个需求是获取某个给定的时间段内,每一天的日志数据,比如说要获取从2018-02-02 09:18:36到2018-03-05 23:18:36这个时间段内,统计出每一天的日志数据,一般情况下,看到这种需求都是考虑使用函数来搞定,直接上sql语句SELECT DATE_FORMAT(trigger_time, '%Y-%m-%d') ...
oracle中查询一个日期的24个小时
with t as(select rownum-1 rn from dual connect by rownum select * from hoursbyday
sql语句查询每分、时、天、月、年的平均数据,或者查询每间隔多少时间的数据
一、sql语句查询每分、时、天、月、年的平均数据/*查询年、月、日、分钟的间隔的平均值(整月整时整分钟)*/ select year(datetime), MONTH(datetime), DAY(datetime), DATEPART(hour, datetime), DATEPART(MINUTE, datetime),AVG(value) from mytable where dat...
laravel按天、按小时,查询数据
使用laravel做后台数据统计的时候,需要查询每天的注册量之类的数据这时候如果直接用created_at分组,是不好用的。1、所以本文解决这个查询应该怎么写。2、并且推荐一个时间选择插件,因为统计中一定会用到,本周数据、本月、本季度、上个月。。。。按天分组数据:Event::where('created_at','>',Carbon::parse($request->start_date)) ->
sqlserver中如何实现时间按月,日,小时分组查询
--按照月份统计<br />select count(id) cnt,datepart(mm,time) [Month]<br />from [table]<br />where [time] between '2007/09/08 09:10:43' and '2007/10/09 04:32:37'<br />group by datepart(mm,time)<br />--按照日统计<br />select count(id) cnt,datepart(dd,time) [Day]<br />fro
获取每小时的天气
如今网上天气API非常多,我找了很长时间,发现了一个比较不错的API易用天气:http://www.yytianqi.com/完全免费,只不过每小时限制访问次数,30次每小时,应该够用了①进入官网后点击“API介绍” ②参照URL的例子: 关于参数city和key如何设置,页面上都有很详细的解释③数据解析(推荐用json):模拟数据:{ "code": 1, "msg": "
查SQL SERVER 本机运行了哪些指令 默认只能查询5天之内的
SELECT TOP 1000  --创建时间  QS.creation_time,  --查询语句  SUBSTRING(ST.text,(QS.statement_start_offset/2)+1,  ((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text)  ELSE QS.statement_end_offset EN...
Mysql取每小时的一条记录
SELECT * FROM ( SELECT s.sensor_data,s.get_date,s.sensor_name, DATE(get_date) AS d, SUBSTRING(get_date,12,2) as h FROM t_env_sensor s where s.sensor_type=5 and s.mod_i
mysql中如何查询最近24小时、top n查询
mysql中如何查询最近24小时、 where visittime >=  NOW() - interval 1 hour; 昨天、 where visittime between CURDATE()-interval 1 day and CURDATE(); 最近7天、 where visittime between CURDATE()-interval 7 day ;
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 云计算价格每小时 机器学习统计数学基础