sql server-SQL SERVER 统计24小时内每小时添加的数据

问题描述

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

如何统计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

解决方案

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

解决方案二:

SqlServer 根据字段分类汇总信息

解决方案三:

对于0可以用when else啊

解决方案四:

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

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

解决方案五:

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

 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])

解决方案六:

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

 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])

解决方案七:

上面的没有测试:

 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

解决方案八:

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

时间: 2024-08-03 23:21:20

sql server-SQL SERVER 统计24小时内每小时添加的数据的相关文章

SQL Server幕后英雄 - 统计信息

SQL Server查询优化器对于执行计划成本的评估是基于数据库统计信息的.所以,数据库统计信息直接影响到数据库查询效率,是数据库系统快速响应,低延迟特性的幕后英雄,但是我们又经常忽视数据库统计信息的存在和维护,怀着为英雄正名和唤醒大家对幕后英雄尊重的目的写作这篇文章. 什么是统计信息 SQL Server查询优化器使用统计信息来评估表或索引视图的一个或多个列中值的分布,这个分布信息提供了用于创建高质量的执行计划的基础(称为基数).更为通俗一点说,SQL Server的执行计划是基于统计信息来评

关于SQL server语句查询统计问题

问题描述 关于SQL server语句查询统计问题 如果相同的Jointno算一个检测口,这一个检测口里有一个是不合格的 那么这个检测口就是不合格,如何统计合格的检测口里的合格数量? 查询生成的结果 Weldercode|合格数 SFCC-124 | 3 解决方案 哥们,对不对?对的话麻烦结贴. 解决方案二: 我这里设置table名为A select count(C.Lineno) as '合格数' from(select Linenocount(Lineno) as 'count' from

SQL Server · 特性介绍 · 统计信息

SQL Server查询优化器对于执行计划成本的评估是基于数据库统计信息的.所以,数据库统计信息直接影响到数据库查询效率,是数据库系统快速响应,低延迟特性的幕后英雄,但是我们又经常忽视数据库统计信息的存在和维护,怀着为英雄正名和唤醒大家对幕后英雄尊重的目的写作这篇文章. 什么是统计信息 SQL Server查询优化器使用统计信息来评估表或索引视图的一个或多个列中值的分布,这个分布信息提供了用于创建高质量的执行计划的基础(称为基数).更为通俗一点说,SQL Server的执行计划是基于统计信息来评

SQL Server深入剖析统计信息学习总结教程

前言 经过前几篇的分析,其实大体已经初窥到SQL Server统计信息的重要性了,所以本篇就要祭出这个神器了. 该篇内容会很长,坐好板凳,瓜子零食之类... 不废话,进正题 技术准备 数据库版本为SQL Server2008R2,利用微软的以前的案例库(Northwind)进行分析,部分内容也会应用微软的另一个案例库AdventureWorks 相信了解SQL Server的朋友,对这两个库都不会太陌生. 概念理解 关于SQL Server中的统计信息,在联机丛书中是这样解释的 查询优化的统计信

[SQL Server]一次执行资料夹内的.sql 指令码

原文:[SQL Server]一次执行资料夹内的.sql 指令码 初始资料库时,我们Developers们会准备很多.sql指令码来建立资料表.检视甚至初始资料,那麽要怎麽一次执行资料夹内的*.sql或是指定的几个.sql指令码? 来节省一点点初始化资料库的作业时间.   好在我们有MSDN使用sqlcmd 执行指令码的范例: sqlcmd -S myServer\instanceName -i C:\myScript.sql 如果只有几个,串成bat档或是powershell也很方便,但如果很

.NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1)

原文:.NET编程和SQL Server --Sql Server 与CLR集成 (学习笔记整理-1) 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数等十分有限,经常需要外部的代码来执行一些繁重的移植: 2.与CLR集成可将原本需要独立的程序来实现的功能迁移到SQL Server 内部进行数据操作: 3.T-SQL数据查询语言在返回数据集方面很好,但是除此之外表现不佳.与CLR的集成可解决这一问题: 4..NET的操作代码和执行的速度比T-SQL

odbc-我用sql server 2008 通过ODBC 连接了sybase 后 查询出的数据中文是乱码

问题描述 我用sql server 2008 通过ODBC 连接了sybase 后 查询出的数据中文是乱码 我用sql server 2008 通过ODBC 连接了sybase 后 查询出的数据中文是乱码 解决方案 http://blog.sina.com.cn/s/blog_48e42dc90100i6ch.html 解决方案二: http://www.2cto.com/database/201203/122530.html

如何使用Spark SQL 的JDBC server

简介         Spark SQL  provides JDBC connectivity, which is useful for connecting business intelligence (BI) tools to a Spark cluster and for sharing a cluster across multipleusers. The JDBC server runs as a standalone Spark driver program that can be

几种高效mssql server sql分页语句

几种高效mssql server sql分页语句 分页方案三:(利用id大于多少和select top分页)效率最高,需要拼接sql语句 分页方案二:(利用not in和select top分页) 效率次之,需要拼接sql语句www.111cn.net 分页方案一:存储过程相对于大数据量会有明显的优势的  看一个简单存储过程实例的 create procedure pr_getarticles --这里为存储过程名称 @page int , @pagenum int as declare @ta