`
shenkun_918
  • 浏览: 27436 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

sqlserver统计二

阅读更多

         接上一篇,数据统计一般都会按照日期进行统计。目标格式基本上如下:

名称
url
2011-04-01
2011-04-02
2011-04-03
a
a.com
100111
100231
101321

         这样会涉及到时间的获取,以及行列的转换,首先时间问题。将yyyy-MM-dd hh:mm:ss这种在数据库里面保存的格式,转化为天。再进行统计,得到一期目标数据格式如下:

 

名称
时间
次数
a
2011-04-01 100111
a 2011-04-02 100231
a 2011-04-03 101321
b
.......
............

 

         得到一期目标格式,就是只需要日期处理,直接上sql.

select sl.service,CONVERT(varchar(10),sl.access_date,23) adate , count(*) as  num from dbo.service_log  sl where sl.access_date between '2011-04-01' and '2011-04-03' group by CONVERT(varchar(10),sl.access_date,23),sl.service
 

        下一步就是要在这上面得到目标格式,基础知识可以参见《sql cookbook》的第12章"报表和数据仓库运算",在上一步的基础上,利用以下sql可以得到目标格式。

select s.service, 
max(case adate when '2011-04-01' then num else 0 end) as '2011-04-01',
max(case adate when '2011-04-02' then num else 0 end) as '2011-04-02',
max(case adate when '2011-04-03' then num else 0 end) as '2011-04-03'
from (select sl.service,CONVERT(varchar(10),sl.access_date,23) adate , count(*) as  num from dbo.service_log  sl where sl.access_date between '2011-04-01' and '2011-04-30' group by CONVERT(varchar(10),sl.access_date,23),sl.service) s group by s.service
 

      还有其他的处理方式,在sqlserver中是pivot,其他数据库也有。关于pivot的基础知识可以参见《sql cookbook》第14章"若干另类目标",利用pivot的sql如下:

select service,[2011-04-01],[2011-04-02],[2011-04-03] from
(select sl.service,CONVERT(varchar(10),sl.access_date,23) adate , count(*) as  num from dbo.service_log  sl where sl.access_date between '2011-04-01' and '2011-04-30' group by CONVERT(varchar(10),sl.access_date,23),sl.service) s
pivot (sum(s.num) for s.adate in ([2011-04-01],[2011-04-02],[2011-04-03])) as t
 

 

分享到:
评论

相关推荐

    如何查看sql server数据库连接数

    1. 打开性能监视器,添加计数器,选择 SQL Server 的常用统计(MSSQL General Statistics)。 2. 在下面的项目中选择用户连接(User Connection),这样就可以实时查询到 SQL Server 数据库连接数。 方法二:通过...

    sqlserver 分组合并 分组统计

    sqlserver 分组合并字符串 分组统计数量

    深入解析sqlserver 2008 Microsoft SQL Server 2008 Internals

    2. **查询优化器**:查询优化器是SQL Server解析和转换SQL语句的关键组件。它通过分析不同的执行路径来确定最佳执行计划,涉及统计信息、代价模型和并行性策略。 3. **事务与并发控制**:书中深入剖析了SQL Server ...

    SQL SERVER实验指导

    SQL SERVER实验指导知识点总结 SQL SERVER实验指导是初学者学习SQL SERVER的绝佳选择。该指导手冊涵盖了SQL SERVER的基本组件、数据库和表的管理、查询分析器的使用、服务管理器的使用等方面的知识点。 一、SQL ...

    sqlserver数据统计一

    标题“sqlserver数据统计一”指向的是一个关于SQL Server数据库管理系统中的数据统计主题。SQL Server是微软公司开发的关系型数据库系统,广泛应用于企业级数据存储和管理。在数据统计方面,它提供了强大的查询和...

    SQLServer7指南(下)

    《SQLServer7指南(下)》是一份专为SQL Server 7.0用户设计的详尽教程,旨在帮助用户深入理解和掌握这一版本的数据库管理系统。SQL Server 7.0是微软发布的一个重要的数据库产品,虽然现在已经较为老旧,但对于理解...

    sql server 2000 试题汇编答案

    2. **T-SQL语言**:SQL Server 2000使用Transact-SQL(T-SQL)作为其数据库查询语言,它是标准SQL的扩展,包含了数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)和过程化语言元素。 3. **数据库...

    SQL SERVER 2005/2008 Express Profiler

    2. **追踪模板**:预定义的追踪模板如“标准”、“跟踪SQL Server审计”等,可快速设置追踪参数。用户也可以自定义模板,选择感兴趣的事件、列和过滤条件。 3. **过滤条件**:Profiler 允许设置过滤条件来限制追踪...

    如何使用SQL Server数据库中查询累计值

    "使用 SQL Server 数据库中查询累计值的方法" SQL Server 是一个功能强大且广泛使用的关系数据库管理系统,通过它可以对数据进行高效的存储、管理和查询。在实际应用中,我们经常需要对数据进行累计计算,例如银行...

    SQLServer2008Client绿色纯净版

    这个"SQLServer2008Client绿色纯净版"是一个便携式的安装包,无需复杂安装过程,解压后即可直接运行。 ### 1. SQL Server Management Studio (SSMS) SQL Server Management Studio是SQL Server 2008客户端的核心...

    sql server 数据库巡检

    包括检查数据库的磁盘空间使用信息、日志文件大小及使用情况、表的磁盘空间使用信息、磁盘读写情况、I/O 工作情况、锁与等待、死锁、用户和进程信息、活动用户和进程的信息、SQL Server 的实际内存占用、所有数据库...

    从Sqlserver移植到DM参考手册[csdn]

    2.1.1 统计SqlServer数据库基础信息 2 2.1.2 统计SQLServer数据中的对象以及表数据量 2 2.2 准备移植环境 3 2.2.1 DM移植环境 4 2.2.2 SqlServer移植环境 5 2.3 常规对象及数据迁移 6 2.3.1 指定迁移计划 6 2.3.2 表...

    SqlServer2000性能工具Profiler.doc

    SQL Server Profiler 是一个强大的工具,用于监测 SQL Server 数据库的性能和行为。它允许管理员实时查看和记录数据库发生的各种事件,例如查询执行、锁定、错误等,从而帮助诊断性能问题和异常。以下是对 SQL ...

    SQL Server 中文帮助文档 chm格式

    2. **安装与配置**:包括SQL Server的安装步骤、硬件和软件需求、安装选项、实例配置、安全性设置等内容,帮助你顺利搭建环境。 3. **T-SQL语言**:T-SQL(Transact-SQL)是SQL Server的扩展语法,用于查询、插入、...

    sql server数据库查看器

    2. **连接管理**:软件支持多种版本的SQL Server,包括SQL Server 2000,可以从提供的文件名"SQL2000"推测。用户可以通过输入服务器名称、实例、用户名和密码来建立与SQL Server实例的连接。 3. **数据浏览**:用户...

    一道SQL Server面试题

    在SQL Server中,面对这道面试题,我们需要编写T-SQL查询来满足以下需求:查询每个部门最后的人员变动时间,以及当前的人员数量、离职总人数和入职总人数。根据提供的表结构,我们可以推断出`DeptHistory`表包含了...

    Professional Microsoft SQL Server 2008 Administration

    2. **数据库设计与管理**:讨论关系数据库设计的基本原则,如范式理论,以及如何在SQL Server 2008中创建、修改和管理数据库对象,如表、索引、视图和存储过程。 3. **安全性**:讲解如何设置用户访问控制,包括...

    SQLServer搭建有域高可用Alwayson集群

    2. **维护计划**: 定期进行备份和更新统计信息,以确保数据完整性和查询性能。 3. **安全更新**: 当需要更新SQL Server时,务必考虑AG的影响,通常会在辅助副本上先进行更新,然后进行故障转移。 五、扩展与优化 ...

    SQL Tuning sqlServer 数据库

    以上内容只是《SQL Tuning in sqlServer 数据库》教程的部分要点,通过深入学习,你可以掌握一系列SQL Server性能优化的技巧和最佳实践,从而更好地管理和优化你的数据库系统。CHM格式的文档通常包含丰富的超链接和...

Global site tag (gtag.js) - Google Analytics