接上一篇,数据统计一般都会按照日期进行统计。目标格式基本上如下:
名称
|
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
分享到:
相关推荐
1. 打开性能监视器,添加计数器,选择 SQL Server 的常用统计(MSSQL General Statistics)。 2. 在下面的项目中选择用户连接(User Connection),这样就可以实时查询到 SQL Server 数据库连接数。 方法二:通过...
sqlserver 分组合并字符串 分组统计数量
2. **查询优化器**:查询优化器是SQL Server解析和转换SQL语句的关键组件。它通过分析不同的执行路径来确定最佳执行计划,涉及统计信息、代价模型和并行性策略。 3. **事务与并发控制**:书中深入剖析了SQL Server ...
SQL SERVER实验指导知识点总结 SQL SERVER实验指导是初学者学习SQL SERVER的绝佳选择。该指导手冊涵盖了SQL SERVER的基本组件、数据库和表的管理、查询分析器的使用、服务管理器的使用等方面的知识点。 一、SQL ...
标题“sqlserver数据统计一”指向的是一个关于SQL Server数据库管理系统中的数据统计主题。SQL Server是微软公司开发的关系型数据库系统,广泛应用于企业级数据存储和管理。在数据统计方面,它提供了强大的查询和...
《SQLServer7指南(下)》是一份专为SQL Server 7.0用户设计的详尽教程,旨在帮助用户深入理解和掌握这一版本的数据库管理系统。SQL Server 7.0是微软发布的一个重要的数据库产品,虽然现在已经较为老旧,但对于理解...
2. **T-SQL语言**:SQL Server 2000使用Transact-SQL(T-SQL)作为其数据库查询语言,它是标准SQL的扩展,包含了数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)和过程化语言元素。 3. **数据库...
2. **追踪模板**:预定义的追踪模板如“标准”、“跟踪SQL Server审计”等,可快速设置追踪参数。用户也可以自定义模板,选择感兴趣的事件、列和过滤条件。 3. **过滤条件**:Profiler 允许设置过滤条件来限制追踪...
"使用 SQL Server 数据库中查询累计值的方法" SQL Server 是一个功能强大且广泛使用的关系数据库管理系统,通过它可以对数据进行高效的存储、管理和查询。在实际应用中,我们经常需要对数据进行累计计算,例如银行...
这个"SQLServer2008Client绿色纯净版"是一个便携式的安装包,无需复杂安装过程,解压后即可直接运行。 ### 1. SQL Server Management Studio (SSMS) SQL Server Management Studio是SQL Server 2008客户端的核心...
包括检查数据库的磁盘空间使用信息、日志文件大小及使用情况、表的磁盘空间使用信息、磁盘读写情况、I/O 工作情况、锁与等待、死锁、用户和进程信息、活动用户和进程的信息、SQL Server 的实际内存占用、所有数据库...
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 表...
SQL Server Profiler 是一个强大的工具,用于监测 SQL Server 数据库的性能和行为。它允许管理员实时查看和记录数据库发生的各种事件,例如查询执行、锁定、错误等,从而帮助诊断性能问题和异常。以下是对 SQL ...
2. **安装与配置**:包括SQL Server的安装步骤、硬件和软件需求、安装选项、实例配置、安全性设置等内容,帮助你顺利搭建环境。 3. **T-SQL语言**:T-SQL(Transact-SQL)是SQL Server的扩展语法,用于查询、插入、...
2. **连接管理**:软件支持多种版本的SQL Server,包括SQL Server 2000,可以从提供的文件名"SQL2000"推测。用户可以通过输入服务器名称、实例、用户名和密码来建立与SQL Server实例的连接。 3. **数据浏览**:用户...
在SQL Server中,面对这道面试题,我们需要编写T-SQL查询来满足以下需求:查询每个部门最后的人员变动时间,以及当前的人员数量、离职总人数和入职总人数。根据提供的表结构,我们可以推断出`DeptHistory`表包含了...
2. **数据库设计与管理**:讨论关系数据库设计的基本原则,如范式理论,以及如何在SQL Server 2008中创建、修改和管理数据库对象,如表、索引、视图和存储过程。 3. **安全性**:讲解如何设置用户访问控制,包括...
2. **维护计划**: 定期进行备份和更新统计信息,以确保数据完整性和查询性能。 3. **安全更新**: 当需要更新SQL Server时,务必考虑AG的影响,通常会在辅助副本上先进行更新,然后进行故障转移。 五、扩展与优化 ...
以上内容只是《SQL Tuning in sqlServer 数据库》教程的部分要点,通过深入学习,你可以掌握一系列SQL Server性能优化的技巧和最佳实践,从而更好地管理和优化你的数据库系统。CHM格式的文档通常包含丰富的超链接和...