`

count查询 统计子表和主表数据

 
阅读更多
1. 查询 子表中,不同的类型统计,
  主表 几千条,子表60万数据,下面查询花了 40秒。

  select
  su.* ,
      ( select count(*) from  dtl e where   e.check_stat='EQ' and  e.batch_no=su.batch_No) EQ,
    ( select count(*) from  dtl w where   w.check_stat !='EQ' and  w.batch_no=su.batch_No) notEQ
     from t_SUM su
  where 1=1
经过 DBA 优化,先查询数据,分组统计之后,再关联,60万的子表速度只有0.34秒

select su.*, w.EQ, w.notEQ
  from  T_SUM su,
       (select batch_no, sum(EQ) EQ, sum(notEQ) notEQ
          from (select batch_no,
                       decode(check_stat, 'EQ', 1, 0) EQ,
                       decode(check_stat, 'EQ', 0, 1) notEQ
                  from dtl)
         group by batch_no) w
where su.batch_No = w.batch_no;

2. mysql 统计不在子表出现的数据。 数据量6万花费了2秒钟,

select count(1) from applies ap where ap.transaction_status='0' and  not exists(
select 1 from readrecords r on ap.id =r.applies_id )

按照1的思路,先出数据,再汇总,先查询总数据,再查询等值关联的数据,那么剩下来的就是不在 表里面的数据。

SELECT
(
SELECT
count(*) sum1
FROM
applies cc
WHERE
cc.transaction_status = '0'
) - (
SELECT
count(DISTINCT ap.id) sum2
FROM
applies ap
INNER JOIN readrecords r ON ap.id = r.applies_id
WHERE
ap.transaction_status = '0'
)






分享到:
评论

相关推荐

    SourceCount代码统计工具

    SourceCount代码统计工具,可以统计出代码行数。方便实用,无需注册。 SourceCount代码行数统计工具

    Oracle表删除大量数据(千万)后查询变慢问题(原因分析)

    Oracle表删除大量数据(千万)后查询变慢问题(原因分析)

    代码行数统计工具SourceCount

    代码行数统计工具,特别好用,可以统计代码的注释行数、空行数、代码有效行数。值得拥有。 代码行数统计工具,特别好用,可以统计代码的注释行数、空行数、代码有效行数。值得拥有。

    解决Oracle表删除大量数据后查询变慢问题

    Oracle 表删除大量数据后,即使表中只有几行记录,但用select count(*) from table 来查询发觉都不会马上出来,原因是该表的空间大了

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    表名或视图列表:表示即将进行数据查询的数据表或者视图,表或视图可以有多个。 条件表达式1:设置查询的条件。 属性名1:表示按该字段中的数据进行分组。 条件表达式2:表示满足该表达式的数据才能输出。 属性2:...

    MySQL数据库:分类汇总.pptx

    数据查询;;分类汇总;【例】 输出Book表中图书类别名。 SELECT 图书类别 FROM Book GROUP BY 图书类别; 【例】 按图书类别统计Book表中各类图书的库存数。 SELECT 图书类别,COUNT(*) AS '库存数' FROM Book GROUP BY ...

    MySQL根据某一个或者多个字段查找重复数据的sql语句

    1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、查询出所有数据进行分组之后,和重复数据...

    SourceCount代码统计

    很好用的代码统计工具很好用的代码统计工具很好用的代码统计工具

    数据库多表查询及嵌套查询子查询语句示例

    5.用子查询作派生的表:select 年龄,count(*) as 相同年龄 from (select top 10 年龄 from kjbdsjk order by 编号) as t group by 年龄 6.把子查询作为表达式:select t.职业,t.平均年龄 from (select 职业,avg(年龄)...

    实验一数据定义与简单查询实验

    3、使用企业管理器和在查询分析器中用Transact-SQL语句的两种方法建立图书、读者和借阅三个表,其结构为: 图书(书号,类别,出版社,作者,书名,定价,备注); 读者(编号,姓名,单位,性别,电话); 借阅...

    类的静态数据成员-用来统计对象存在的个数

    类的静态数据成员的实际应用场景之一:用来统计该类对象存在的个数;并且如果在头文件中初始化静态变量将导致obj重复定义的错误,解决办法:将静态成员的初始化放到.cpp文件中

    Count Lines of code 统计代码行数

    Count Lines of code 统计代码行数

    countlines,代码统计工具

    countlines 代码统计工具 统计代码 你想知道你一天写了多少java代码、JSP代码之类的么?下载下来看看吧,才9K,好用。

    Oracle查询表里的重复数据方法

     一张person表,有id和name的两个字段,id是唯一的不允许重复,id相同则认为是重复的记录。 二、解决  select id from group by id having count(*) > 1  按照id分组并计数,某个id号那一组的数量超过1条则认为...

    sourcecount 代码行统计工具

    sourcecount 代码行统计工具,可以统计C/C++、JAVA、Basic三中言语的代码行数

    实验一 数据定义与简单查询实验

    3、使用企业管理器和在查询分析器中用Transact-SQL语句的两种方法建立图书、读者和借阅三个表,其结构为: 图书(书号,类别,出版社,作者,书名,定价,备注); 读者(编号,姓名,单位,性别,电话); 借阅...

    统计代码行数小工具SourceCount.rar

    SourceCount能够轻松帮助你统计代码行数,可统计单一文件代码行数,也可以添加目录分别统计总行数。开发者必备工具。1:选择程序语言 目前支持三种类型的工程,在后期版本中将增加对HTML/JSP、HTML/ASP类工程的支持...

    题目:分类统计字符个数COUNT_CHAR

    题目:分类统计字符个数COUNT_CHAR程序接收用户键入的一行字符(字符个数不超过80个,该字符串用回车符结束),

    sqlserver 循环临时表插入数据到另一张表

    sqlserver 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @...

    SQL 数据分析:销售数据的小计/合计/总计以及数据透视表

    学习过 SQL 的人都知道,使用聚合函数(AVG、SUM、COUNT、MIN/MAX 等)和分组操作(GROUP BY)可以对数据进行基本的统计分析,例如统计公司员工的人数、每个部门的平均月薪等。如果想要回顾这些基础概念,可以参考这...

Global site tag (gtag.js) - Google Analytics