总结一下这段时间做的统计功能点。
下面的例子是利用sqlserver CTE 自下到上做树形结构的统计。
统计出每个节点的值都是下级节点的总和。
树形结构存储表:
CREATE TABLE [00_APP].[test_node](
[id] [bigint] IDENTITY(1,1) NOT NULL,
[nodename] [varchar](50) NULL, --节点名称
[parentid] [bigint] NULL, -- 上级节点ID
[nodetype] [bigint] NULL,-- 节点类型:1 节点,2 叶子
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
数据:
/******* 生成统计表 *******/
WITH suborgs
AS (
SELECT [00_APP].test_node.id ,
[00_APP].test_node.nodename ,
[00_APP].test_node.parentid ,
[00_APP].test_node.nodetype,
-- 增加统计列
[00_APP].test_node.nodename AS val
FROM [00_APP].test_node WITH ( NOLOCK )
WHERE nodetype = 2 -- 叶子节点
UNION ALL
SELECT node.id ,
node.nodename ,
node.parentid ,
node.nodetype ,
-- 增加的统计列
suborgs.val
FROM suborgs
INNER JOIN [00_APP].test_node AS node ON suborgs.parentid = node.id AND node.nodetype= 1 -- 非叶子节点
)
-- 可根据 group 条件对 “统计列” 进行统计
SELECT * FROM suborgs AS tres
结果:
- 大小: 19.5 KB
- 大小: 23.9 KB
分享到:
相关推荐
SQLserver CTE With 使用with产出临时表,在根据临时表二次查询
SQL SERVER的CTE用法,包括列值计算等
SQL Server 2005 杂谈 使用 公用表表达式 CTE 简化 嵌套 SQL SQL Server 2005 杂谈 使用 公用表表达式 CTE 简化 嵌套 SQL
在当的地方增加适当的索引并从不合理的地方删除次优的索引,将有助于优化那些性能较差的SQL Server应用。实践表明,合理的索引设计是建立在对各种查询的分析和...本文就SQL Server索引的性能问题进行了一些分析和实践。
递归CTE是SQL SERVER 2005中重要的增强之一。一般我们在处理树,图和层次结构的问题时需要用到递归查询...本文给大家详解使用sqlserver cte递归查询出来树、图和层次结构,本文介绍的非常详细,感兴趣的朋友一起看看吧
详细描述在sqlserver 2005 中通过使用CTE 实现递归的方法
insert into dbo.hierarchy values(1,0,'河南省') ,(2,1,
SQL Server 2005 杂谈 公用表表达式 CTE 递归调用 doc SQL Server 2005 杂谈 公用表表达式 CTE 递归调用 doc
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它。每个CTE仅被定义一次(但在其作用域内可以被引用任意...
之前曾有一篇POST是关于用CTE实现Split,这种方法已经比传统的方法高效了。今天我们就这个方法与CLR实现的Split做比较。在CLR实现Split函数的确很简单,dotnet framework本身就有这个function了。
本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...
本书首先介绍SQL Server 2008的新功能,然后在更详实的示例代码的引导下全面深入地展开论述,讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能,还讲述了如何管理高级脚本和数据库以及如何确定和...
深入理解T-SQL体系结构,充分利用高级T-SQL查询技术。 本书深入介绍了T-SQL的内部体系结构,揭示了基于集合的查询的强大威力,并包含大量来自专家们的参考和建议。通过本书提供的最佳实践和示例代码,数据库开发...
自己整理的有关SQL的基本语法,该文档里为oracle的查询、修改,合并,递归查询的语句及例子,欢迎下载,评分
下面是一个简单的Family Tree 示例: 代码如下: DECLARE @TT TABLE (ID int,Relation varchar(25),Name varchar(25),ParentID int) INSERT @TT SELECT 1,’ Great GrandFather’ , ‘Thomas Bishop’, null UNION ...
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 百度百科 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它。每个CTE仅被定义一次(但在其作用域内可以被...
主要介绍了SQL Server 公用表表达式(CTE)实现递归的方法,需要的朋友可以参考下