SQL 中条件count()用sum()代替
2016-04-01 00:00
393 查看
摘要: count ()对于null不计数 现在要计数不为空的列
换一个sum方法 满足条件计1,不满足为0
后者效果耗时更低,性能是前者两倍以上
------------------------------------------------------------------------------------------------
SELECT
COUNT(
CASE WHEN ${x} > 0 THEN name ELSE NULL end) AS
addCount,
COUNT(
CASE WHEN ${y} > 0 THEN name ELSE NULL end) AS
delCount
FROM
tablename
where...
测试耗时:30min
------------------------------------------------------------------------------------------------
SELECT
SUM(
CASE WHEN ${x} > 0 THEN 1 ELSE 0end) AS addCount,
[b]SUM[/b](
CASE WHEN ${y} > 0 THEN 1 ELSE 0 end) AS delCount
FROM
tablename
where...
测试耗时8min
------------------------------------------------------------------------------------------------
换一个sum方法 满足条件计1,不满足为0
后者效果耗时更低,性能是前者两倍以上
------------------------------------------------------------------------------------------------
SELECT
COUNT(
CASE WHEN ${x} > 0 THEN name ELSE NULL end) AS
addCount,
COUNT(
CASE WHEN ${y} > 0 THEN name ELSE NULL end) AS
delCount
FROM
tablename
where...
测试耗时:30min
------------------------------------------------------------------------------------------------
SELECT
SUM(
CASE WHEN ${x} > 0 THEN 1 ELSE 0end) AS addCount,
[b]SUM[/b](
CASE WHEN ${y} > 0 THEN 1 ELSE 0 end) AS delCount
FROM
tablename
where...
测试耗时8min
------------------------------------------------------------------------------------------------
相关文章推荐
- 数据库创建索引的必要性
- Mysql 安装与卸载实践
- mongodb的安装,开启,连接
- sqlserver 2005 分页
- sqlserver 关于日期函数
- sqlserver 2005 列字符串拼接
- 重庆专业oracle数据库集群安装服务-重庆思庄科技
- zabbix 监控redis sentinel
- zabbix 监控redis server
- Oracle数据泵expdp导出,impdp导入
- CAS服务端,查询数据库验证
- 防止sql注入mysql_real_escape_string
- mysql高级运维dba要掌握的九大工具链
- pl/sql导入excel到oracle表
- Java中使用Jedis操作Redis
- mysql定时执行任务
- sqlserver还原数据库的时候出现提示无法打开备份设备的解决方法(设备出现错误或设备脱)
- mysql DELIMITER $$
- [渗透测试]扫目录,Sqlmap利用均超时,利用dirb扫描
- vs2015连接oracle 11g(.net自带方式 using System.Data.OracleClient;)