简单的一句代码 ,花了1秒,如何优化?
时间:2011-12-05
来源:互联网
SELECT a.OUID, a.OUName, a.OULevel, a.OUFullName, a.ParentOUID ,(SELECT COUNT(1) FROM tbEmployeeInfo tei WHERE (a.OULevel> 2 AND tei.OUIDs LIKE a.OUID+'%') or (a.OULevel< 3 AND tei.DeptOUIDs = a.OUID) ) AS 人员总数 FROM tbOrganization a WHERE a.OULevel< 4 ORDER BY OULevel
就是统计每个部门有多少人
作者: leongF 发布时间: 2011-12-05
SQL code
,(SELECT COUNT(1) FROM tbEmployeeInfo tei WHERE (a.OULevel> 2 AND tei.OUIDs LIKE a.OUID+'%') or (a.OULevel< 3 AND tei.DeptOUIDs = a.OUID) ) AS 人员总数
作者: leongF 发布时间: 2011-12-05
作者: ssp2009 发布时间: 2011-12-05
SQL code
SELECT a.OUID, a.OUName, a.OULevel, a.OUFullName, a.ParentOUID, (SELECT sum(case when a.OULevel> 2 AND OUIDs LIKE a.OUID+'%' or a.OULevel< 3 AND DeptOUIDs = a.OUID then 1 else 0 end)ct FROM tbEmployeeInfo ) AS 人员总数 FROM tbOrganization a WHERE a.OULevel< 4 ORDER BY OULevel
作者: qianjin036a 发布时间: 2011-12-05
作者: maco_wang 发布时间: 2011-12-05
你可以在 OUID字段加索引。
作者: fredrickhu 发布时间: 2011-12-05
try:
SQL code
SELECT
a.OUID,
a.OUName,
a.OULevel,
a.OUFullName,
a.ParentOUID,
(SELECT sum(case when a.OULevel> 2 AND OUIDs LIKE a.OUID+'%' or a.OULevel< 3 AND DeptOUIDs = a……
在包含外部引用的被聚合表达式中指定了多个列。如果被聚合的表达式包含外部引用,那么该外部引用就必须是该表达式中所引用的唯一的一列。
作者: leongF 发布时间: 2011-12-05
OULevel字段上有索引吗?
特为此建立索引,还是没有效果
作者: leongF 发布时间: 2011-12-05
有子查询和OR就比较慢了
你可以在 OUID字段加索引。
还是慢,可能是表前期设计不好,现在没有办法了
作者: leongF 发布时间: 2011-12-05
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28