寻求高手相助,一个查询统计问题
有这样一种树状结构的数据,层次不确定
注:括号中的数值是指该类型节点在父节点中的个数,如A1中有2个B1,3个C1,等等
A1
|-B1(2)
| |-D1(3)
| |-D2(2)
| |-E3(5)
|
|-C1(3)
| |-F1(3)
| |-D2(5)
| |
| |-B1(3)
| | |-D1(3)
| | |-D2(2)
| | |-E3(5)
| |
| |-B2(2)
| | |-D1(2)
| | |-E3(3)
| |
|-E1(1)
现在需要查询某个节点下有多少个特定的子节点,
比如说C1下有多少个E3(即3个B1*5个E3+2个不*3个E3=21个)
或者某个节点下除某些节点以外其他节点下共有多少个特定的子节点
比如说C1下除B2外有多少个E3(即3个B1*5个E3=15个)
考虑到数据量相当庞大
数据库表如何设计比较好,查询语句该怎么写呢
原先的设计方式是建一张包含3个字段的表来描述这棵树
parent, child, number
但是因为数据可能有数千万条
查询的效率成了个大问题
郁闷中!
请诸位高手不吝赐教!谢了先!
注:括号中的数值是指该类型节点在父节点中的个数,如A1中有2个B1,3个C1,等等
A1
|-B1(2)
| |-D1(3)
| |-D2(2)
| |-E3(5)
|
|-C1(3)
| |-F1(3)
| |-D2(5)
| |
| |-B1(3)
| | |-D1(3)
| | |-D2(2)
| | |-E3(5)
| |
| |-B2(2)
| | |-D1(2)
| | |-E3(3)
| |
|-E1(1)
现在需要查询某个节点下有多少个特定的子节点,
比如说C1下有多少个E3(即3个B1*5个E3+2个不*3个E3=21个)
或者某个节点下除某些节点以外其他节点下共有多少个特定的子节点
比如说C1下除B2外有多少个E3(即3个B1*5个E3=15个)
考虑到数据量相当庞大
数据库表如何设计比较好,查询语句该怎么写呢
原先的设计方式是建一张包含3个字段的表来描述这棵树
parent, child, number
但是因为数据可能有数千万条
查询的效率成了个大问题
郁闷中!
请诸位高手不吝赐教!谢了先!
...全文
相关推荐
mysql查询根据列按条件统计总数
mysql可以查询根据某列按条件统计总数
mysql实现多表关联统计(子查询统计)示例
主要介绍了mysql实现多表关联统计(子查询统计),结合具体案例形式分析了mysql多表关联统计的原理、实现方法及相关操作注意事项,需要的朋友可以参考下
SQLserver 实现分组统计查询(按月、小时分组)
设置AccessCount字段可以根据需求在特定的时间范围内如果是相同IP访问就在AccessCount上累加。 代码如下:Create table Counter ( CounterID int identity(1,1) not null, IP varchar(20), AccessDateTime datetime, AccessCount int ) 该表在这儿只是演示使用,所以只提供了最基本的字段 现在往表中插入几条记录 insert into Counter select ‘127.0.0.1’,getdate(),1 union all select ‘127.0.0.2’,
ArcEngine空间查询统计
ArcEngine二次开发代码,调试可运行,可实现属性查询、空间查询和统计功能!供初学者练习使用.........
实验四: 数据库的组合查询和统计查询
数据库的组合查询和统计查询,里面有很全的查询语句,方便初学者参考


