总结一下这段时间做的统计功能点。
下面的例子是利用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
分享到:
相关推荐
CTE(Common Table Expressions)是从SQL Server 2005以后版本才有的。指定的临时命名结果集,这些结果集称为CTE。 与派生表类似,不存储为对象,并且只在查询期间有效。与派生表的不同之处在于,CTE 可自引用,还可...
通过以上分析可以看出,在SQL Server 2008中使用CTE进行递归查询是一种高效且易于理解的方法。通过定义基础情况和递归规则,可以轻松地获取所有上级或下级数据。然而,在实际应用过程中,还需要综合考虑性能等因素,...
在SQL Server中,实现树形结构递归查询是...总之,SQL Server中的递归CTE为处理树形结构数据提供了强大而简洁的工具。通过正确地构造递归查询,我们可以方便地获取层级数据的任意层次结构,从而满足无限级分类的需求。
SQL Server 2005 Beta 2带来了对Transact-SQL的显著增强,这些改进主要集中在...对于熟悉SQL Server 2000的用户来说,掌握这些新特性将有助于充分利用SQL Server 2005的新功能,提高数据库管理和应用程序开发的水平。
最后,通过SELECT语句从FamilyTree中检索所有数据,即可得到完整的家族树结构。输出结果包含了每个成员的ID、关系、姓名、父辈ID、父辈名字以及所在代数。 递归CTE在处理树型结构数据时的优势在于它可以简洁地表达...
树形结构处理在SQL Server中是指利用T-SQL来管理和查询那些以树状形式展现的层次性数据。 文档《Microsoft SQL Server中T-SQL关于树(层次)结构的处理研究》主要探讨了在SQL Server中使用T-SQL来处理树形数据结构的...
在SQL Server中,利用CTE进行无限级树形结构的构建主要依赖于递归。递归CTE允许查询自身多次执行,每次迭代都将结果集扩展到下一层次。 以下是一个使用CTE构建无限级树形结构的示例: ```sql DECLARE @Level INT = ...
深入理解T-SQL体系结构,充分利用高级T-SQL查询技术。 本书深入介绍了T-SQL的内部体系结构,揭示了基于集合的查询的强大威力,并包含大量来自专家们的参考和建议。通过本书提供的最佳实践和示例代码,数据库开发...
在本例中,我们将讨论如何利用CTE来实现递归,以便查找树形结构数据中的所有子孙节点。 首先,我们需要理解CTE的基本概念。CTE可以看作是在一个查询中定义的临时视图,它在查询执行的过程中有效,但不会存储为...
这些工具支持对SQL Server中的树结构进行CRUD操作,并可以方便地在应用程序中呈现树视图。 6. **SQL Server 2000兼容性** 对于SQL Server 2000,由于没有`hierarchyid`,自连接和递归查询是构建多级树的主要手段。...
在SQL Server 2008中,表达式递归查询是一种强大的工具,尤其适用于处理具有层级关系的数据,如组织结构、目录树或者分类系统。这种技术主要依赖于公用表表达式(Common Table Expression, CTE),它允许在单个查询...
在SQL Server中,递归查询是一种强大的工具,用于处理层级数据或树状结构的数据,例如组织结构、部门关系等。本文将深入探讨如何利用递归查询来获取子节点和父节点的信息。 一、查询当前部门下的所有子部门 在SQL ...
在SQL Server 2008中,生成树状结构数据的全路径,特别是涉及层级关系的数据,可以使用公共表表达式(Common Table Expression, CTE)来实现。CTE是SQL查询中的一个临时结果集,它可以在单个查询中被多次引用。在本...
SQL Server 2005是微软公司推出的一款强大的关系型数据库管理系统,它在数据库管理和开发领域扮演着重要的角色。此教程“SQL Server 2005数据库技术与应用”旨在全面解析该系统的各项特性和应用,帮助学习者掌握SQL ...
在SQL Server 2005中,处理树形结构的数据是一项常见的任务,特别是在数据库设计中。树形数据通常用于表示层级关系,如组织结构、产品分类、目录结构等。递归查询是解决这类问题的有效方法,它允许我们通过自我连接...
在SQL Server中,我们可以利用`WITH`子句配合递归公共表表达式(Recursive Common Table Expression, CTE)来查询树形结构。以下是具体代码示例: ```sql WITH TREE AS( -- 创建一个虚拟表,从根节点开始递归 ...