MSSQL中用 WITH AS 和PIVOT来统计编辑新闻发布时间详情和总数

WITH CR AS(
SELECT AddTime,[编辑名称1],[编辑名称2],[编辑名称3]
FROM (SELECT NewsID,AddTime,AuditingUser FROM News) AS a
Pivot (COUNT(a.NewsID) FOR a.AuditingUser in ([编辑名称1],[编辑名称2],[编辑名称3])) as PVT
WHERE AddTime between '2014-11-24 00:00:00' and '2014-11-30 23:59:59'
GROUP BY AddTime,[编辑名称1],[编辑名称2],[编辑名称3])
SELECT CONVERT(NVARCHAR(50),AddTime,120) as '时间',[编辑名称1],[编辑名称2],[编辑名称3] FROM CR
UNION(SELECT '总计' AS AddTime ,SUM(CR.[编辑名称1]) AS '编辑名称1',SUM(CR.[编辑名称2]) AS [编辑名称2],SUM(CR.[编辑名称3]) AS [编辑名称3] FROM CR)

执行前需要把目标数据库的兼容性设置为90(sql2005)以上,否则会报错。

得到的结果:

时间	            编辑名称1 编辑名称2 编辑名称3
2014-11-24 08:36:03	1	0	0
2014-11-24 09:42:15	0	0	1
2014-11-24 09:42:31	0	1	0
2014-11-24 09:43:25	1	0	0
2014-11-24 09:45:54	0	0	1
2014-11-24 10:22:13	0	0	1
2014-11-24 10:31:17	0	0	1
2014-11-24 10:39:36	0	0	1
2014-11-24 11:27:12	0	1	0
2014-11-24 11:28:57	0	0	0
2014-11-24 14:28:57	0	1	0
2014-11-24 14:31:05	1	0	0
2014-11-24 14:47:34	0	1	0
2014-11-24 15:35:54	0	1	0
2014-11-24 15:37:25	1	0	0
2014-11-24 15:41:14	1	0	0
2014-11-24 15:49:39	0	1	0
2014-11-24 15:56:30	0	1	0
2014-11-24 16:02:10	1	0	0
2014-11-24 16:17:32	0	0	1
2014-11-24 16:26:50	1	0	0
2014-11-24 16:34:43	0	1	0
2014-11-24 16:41:45	0	0	0
2014-11-24 16:47:42	0	0	0
2014-11-24 17:01:27	0	0	0
2014-11-24 17:17:16	0	0	1
2014-11-24 20:14:35	0	0	0
2014-11-25 08:44:35	0	1	0
2014-11-25 09:18:06	0	1	0
2014-11-25 09:23:49	1	0	0
2014-11-25 10:37:55	0	1	0
2014-11-25 10:50:53	0	0	1
2014-11-25 11:02:30	0	0	1
2014-11-25 11:28:11	0	1	0
2014-11-25 14:28:24	0	1	0
2014-11-25 14:35:09	1	0	0
2014-11-25 14:44:43	0	1	0
2014-11-25 15:10:52	0	0	1
2014-11-25 15:14:03	0	1	0
2014-11-25 15:28:07	0	0	1
2014-11-25 15:34:24	0	0	1
2014-11-25 15:35:08	0	0	1
2014-11-25 15:40:51	0	0	1
2014-11-25 16:06:52	1	0	0
2014-11-25 16:07:40	0	0	1
2014-11-25 16:30:13	0	0	1
2014-11-25 16:44:33	1	0	0
2014-11-25 16:53:33	1	0	0
2014-11-25 17:06:54	1	0	0
2014-11-25 17:12:05	1	0	0
2014-11-25 17:17:20	0	1	0
2014-11-26 08:56:24	1	0	0
2014-11-26 09:01:38	0	1	0
2014-11-26 09:09:53	0	1	0
2014-11-26 09:22:49	1	0	0
2014-11-26 09:31:26	0	1	0
2014-11-26 10:01:38	0	0	1
2014-11-26 10:34:35	1	0	0
2014-11-26 10:42:53	0	0	1
2014-11-26 10:45:15	0	1	0
2014-11-26 11:07:30	0	0	1
2014-11-26 11:26:55	0	1	0
2014-11-26 11:28:44	0	0	1
2014-11-26 14:30:21	0	1	0
2014-11-26 14:50:07	0	1	0
2014-11-26 15:07:40	0	1	0
2014-11-26 15:23:50	1	0	0
2014-11-26 15:35:24	1	0	0
2014-11-26 15:40:41	1	0	0
2014-11-26 15:46:22	0	1	0
2014-11-26 16:15:42	0	0	1
2014-11-26 16:27:36	0	1	0
2014-11-26 16:38:38	1	0	0
2014-11-26 16:39:58	0	0	1
2014-11-26 16:42:17	0	0	1
2014-11-26 16:45:11	0	0	1
2014-11-26 16:51:14	0	0	1
2014-11-27 08:41:46	0	1	0
2014-11-27 08:50:38	1	0	0
2014-11-27 09:41:12	0	1	0
2014-11-27 09:50:59	1	0	0
2014-11-27 09:51:32	0	1	0
2014-11-27 10:36:09	1	0	0
2014-11-27 10:54:57	0	0	1
2014-11-27 14:16:58	1	0	0
2014-11-27 14:45:37	0	1	0
2014-11-27 14:50:22	0	0	1
2014-11-27 14:52:13	0	0	1
2014-11-27 14:55:29	0	1	0
2014-11-27 15:03:23	0	0	1
2014-11-27 15:07:49	0	0	1
2014-11-27 15:19:07	0	0	1
2014-11-27 15:38:14	0	1	0
2014-11-27 15:50:25	0	1	0
2014-11-27 15:58:04	1	0	0
2014-11-27 15:58:48	0	0	1
2014-11-27 16:08:59	0	0	1
2014-11-27 16:14:53	0	1	0
2014-11-27 16:17:10	0	0	1
2014-11-27 16:19:59	1	0	0
2014-11-27 16:41:57	1	0	0
2014-11-28 08:46:40	1	0	0
2014-11-28 09:03:07	0	1	0
2014-11-28 09:27:11	0	1	0
2014-11-28 09:44:44	0	0	1
2014-11-28 09:48:48	0	0	1
2014-11-28 09:53:52	0	1	0
2014-11-28 10:34:09	0	0	1
2014-11-28 10:39:20	0	1	0
2014-11-28 10:51:16	1	0	0
2014-11-28 11:38:25	1	0	0
2014-11-28 11:44:27	1	0	0
2014-11-28 14:36:29	1	0	0
2014-11-28 15:03:20	0	0	1
2014-11-28 15:34:43	0	0	1
2014-11-28 15:40:29	1	0	0
2014-11-28 15:40:42	0	0	1
2014-11-28 15:50:40	1	0	0
2014-11-28 16:07:17	1	0	0
2014-11-28 16:09:41	0	1	0
2014-11-28 16:10:12	0	0	1
2014-11-28 16:27:12	0	0	1
2014-11-28 17:02:38	0	0	1
2014-11-28 21:24:18	0	0	0
2014-11-29 08:31:36	0	0	0
2014-11-29 12:32:32	0	0	1
2014-11-29 12:35:14	0	0	1
2014-11-29 12:44:43	0	0	1
2014-11-29 13:13:16	0	0	1
2014-11-29 13:20:21	0	0	1
2014-11-29 13:30:12	0	0	1
2014-11-29 13:42:31	0	0	1
2014-11-29 20:30:36	0	0	0
2014-11-29 20:50:03	0	0	0
2014-11-29 21:12:30	0	0	1
2014-11-30 12:12:08	0	0	1
2014-11-30 12:30:36	0	0	1
2014-11-30 12:33:36	0	0	1
2014-11-30 12:37:54	0	0	1
2014-11-30 12:43:38	0	0	1
2014-11-30 12:52:18	0	0	1
2014-11-30 12:56:47	0	0	1
2014-11-30 17:55:54	0	0	1
2014-11-30 17:55:55	0	0	1
2014-11-30 18:30:41	0	0	1
2014-11-30 18:48:15	0	0	1
2014-11-30 18:54:55	0	0	1
2014-11-30 18:56:59	0	0	1
2014-11-30 19:15:30	0	0	1
2014-11-30 19:29:41	0	0	1
总计	               36	39	66



时间: 2024-11-05 23:38:25

MSSQL中用 WITH AS 和PIVOT来统计编辑新闻发布时间详情和总数的相关文章

SQL Server 查找统计信息的采样时间与采样比例

原文:SQL Server 查找统计信息的采样时间与采样比例 有时候我们会遇到,由于统计信息不准确导致优化器生成了一个错误的执行计划(或者这样表达:一个较差的执行计划),从而引起了系统性能问题.那么如果我们怀疑这个错误的执行计划是由于统计信息不准确引起的.那么我们如何判断统计信息不准确呢?当然首先得去查看实际执行计划中,统计信息的相关数据是否与实际情况有较大的出入,下面我们抛开这个大命题,仅仅从统计信息层面去查看统计信息的更新时间,统计信息的采样行数.采样比例等情况. 1:首先,我们要查查统计信

mysql初识(五) 统计与计算与时间

mysql 日期与时间 */获取当前日期和时间 mysql> select now();+---------------------+| now() |+---------------------+| 2015-10-28 19:51:17 |+---------------------+ 获取当前日期mysql> select curdate();+------------+| curdate() |+------------+| 2015-10-28 |+------------+ 获取当

[linux time命令学习篇] time 统计命令执行的时间

注意: 命令后面一定要有分号; http://codingstandards.iteye.com/blog/798788 用途说明 time命令常用于测量一个命令的运行时间,注意不是用来显示和修改系统时间的(这是date命令干的事情).但是今天我通过查看time命令的手册页,发现它能做的不仅仅是测量运行时间,还可以测量内存.I/O等的使用情况,手册页上的说法是time a simple command or give resource usage,其中time一词我认为它应该是测量或测定的意思,

使用 flex4 开发通用统计系统,发布源代码至github

1,关于flex4 很老的技术,我居然还再研究使用这个东西,自己想想都不敢相信. 技术存在总是有他的理由的.之所以想用flex4 开发一个通用统计系统,还是有几个有点的: a,组件比较全,比较全,基本上省去了自己开发 b,在局域网下一次获取大量json数据并解析展示到flex里面速度比html快,图标效果比较好 c,开发系统一个人就够了,浏览器兼容比较好,只要安装flash就行,尤其要做成产品给xp系统的使用那个IE兼容性痛苦啊 当然也有缺点,技术学习成本不低,属于不流行的没落的技术. 但这个不

拆线图按年、按月,按天统计,前端传时间只要起始时间与结束时间

工具类 package test.common.utils; import test.EventInfoCountVo; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; public class StatisticalUtil {

Linux显示内存统计最大和最小的详情

[email protected]:~$ free -l total used free shared buffers cached Mem: 3103064 1547152 1555912 7412 66264 647296 Low: 3103064 1547152 1555912 High: 0 0 0 -/+ buffers/cache: 833592 2269472 Swap: 3998716 0 3998716 [email protected]:~$ free --lohi tota

Sql Server统计查询语句消耗时间

方法1[set statistic ]: set statistics time ongo xxxxgoset statistics time off 方法2[getDate()]: DECLARE @begin dateTimeDECLARE @end dateTimeSET @begin=getdate();BEGIN xxxxendset @end=getdate();SELECT datediff(ms,@begin,@end) as 'Elapsed Time' 方法3[设置Query

SQLServer 统计查询语句消耗时间

--方法1[set statistic ]: set statistics time on go --执行语句 xxxx go set statistics time off --方法2[getDate()]: DECLARE @begin dateTime DECLARE @end dateTime SET @begin=getdate(); BEGIN --执行语句 xxxx end set @end=getdate(); SELECT datediff(ms,@begin,@end) as

博客园文章发布时间统计

我只是想看一下大家都是啥时候发博客而已!! 第一步: 把 https://www.cnblogs.com/ 的文章列表先拿下来,只有200页,时间范围是一个月多几天,不知道是不是全部的,就这样吧 代码很简单:https://github.com/dytttf/little_spider/blob/master/cnblogs/blog_index_spider.py 数据格式如下: data = { "https://www.cnblogs.com/xxx.html": { "