使用union all 遇到的问题(俩条sql语句行数的和 不等于union all 后的 行数的和 !);遗留问题 怎么找到 相差的呐俩条数据 ?
create table buyer as
SELECT b.id AS bankid
FROM v_product_deal_main m, base_member b
WHERE b.id = m.BUYERID
AND m.DEALDATE <= to_date('', 'yyyymmdd')
AND m.STATE = 9
AND b.state = 0;
---441947
--seller方
create table seller as SELECT * FROM seller ;
create table seller as
SELECT b.id AS bankid
FROM v_product_deal_main m, base_member b
WHERE b.id = m.sellerid
AND m.DEALDATE <= to_date('', 'yyyymmdd')
AND m.STATE = 9
AND b.state = 0; create TABLE ttt as
SELECT aa,bankid
FROM (SELECT 1 aa,
m.BUYERID AS bankid
FROM v_product_deal_main m, base_member b
WHERE b.id = m.BUYERID
AND m.DEALDATE <= to_date('', 'yyyymmdd')
AND m.STATE = 9
AND b.state = 0
UNION ALL
SELECT 2 AS aa,
m.sellerID AS bankid
FROM v_product_deal_main m, base_member b
WHERE b.id = m.sellerid
AND m.DEALDATE <= to_date('', 'yyyymmdd')
AND m.STATE = 9
AND b.state = 0);
--从下面可以看到 seller 表中的行数+ buyer 表中的行数 < ttt表中的行数 ;
SELECT COUNT(1) FROM seller ; --
SELECT COUNT(1) FROM buyer ; --
SELECT COUNT(1) FROM ttt ; ---883894
-- bankid=1 在buyer表中出现的次数 15191 + (seller表中出现的次数)11457= (ttt 表中出现的次数)30382 ;(seller + buyer)= 26648
--4378 +5859 =8756 10237 --bankid =2 出现的次数
SELECT 4378 +5859 FROM dual ;
SELECT b.bankid ,COUNT(b.bankid) FROM buyer b GROUP BY b.bankid ORDER BY b.bankid ;
SELECT s.bankid ,COUNT(s.bankid) FROM seller s GROUP BY s.bankid ORDER BY s.bankid ;
SELECT t.bankid ,COUNT(t.bankid) FROM ttt t GROUP BY t.bankid ORDER BY t.bankid SELECT SUM(DECODE(t.aa ,1 ,bankid,0 )) buyer ,
SUM( DECODE(t.aa ,2 ,bankid,0 )) seller
FROM ttt t ; SELECT SUM(DECODE(t.aa ,1 ,1,0 )) buyer ,
SUM( DECODE(t.aa ,2 ,1,0 )) seller
FROM ttt t ; --
SELECT bankid, count(1) from ttt
where aa=2
MINUS
--
Select bankid ,Count(1) From seller ; SELECT bankid from ttt
where aa=2
MINUS
--
Select bankid From seller ;
SELECT COUNT(1) from ttt -------------------------------
--1765 --441947
select bankid,count(1) from ttt
where aa=2
group by bankid
order by bankid ; --1465 --441945
Select bankid,Count(1) From seller
group by bankid
order by bankid
; SELECT t.bankid FROM ttt t WHERE t.aa =1 SELECT t.bankid FROM ttt t WHERE t.aa =2 SELECT SUM(NVL(BUYERID, 0) + NVL(SELLERID, 0))
FROM (SELECT (SELECT 1
FROM BASE_MEMBER B
WHERE B.ID = M.BUYERID
AND B.STATE = 0) AS BUYERID,
(SELECT 1
FROM BASE_MEMBER B
WHERE B.ID = M.SELLERID
AND B.STATE = 0) AS SELLERID
FROM V_PRODUCT_DEAL_MAIN M
WHERE M.DEALDATE <= TO_DATE('', 'yyyymmdd')
AND M.STATE = 9)
1.遗留问题 怎么找到 相差的呐俩条数据 ?
2. 问题到底出在哪里 ?
使用union all 遇到的问题(俩条sql语句行数的和 不等于union all 后的 行数的和 !);遗留问题 怎么找到 相差的呐俩条数据 ?的更多相关文章
- 一条SQL语句执行得很慢原因有哪些
一条SQL语句执行得很慢,要分两种情况: 1.大多数情况是正常,偶尔很慢 数据库在处理数据忙时候,更新或新增数据都会暂时记录到redo log日志,等空闲时把数据同步到磁盘.假设数据库一直很忙,更新又 ...
- 一条SQL语句求全年平均值
一年有8760个小时!(才这么点...) 有个气候表,存储了当地从1到8760小时的温度数据.现在,要求全年的温度每天平均值. CREATE TABLE #Climate(h INT ,t DECIM ...
- MyBatis7:MyBatis插件及示例----打印每条SQL语句及其执行时间
Plugins 摘一段来自MyBatis官方文档的文字. MyBatis允许你在某一点拦截已映射语句执行的调用.默认情况下,MyBatis允许使用插件来拦截方法调用 Executor(update.q ...
- MyBatis插件及示例----打印每条SQL语句及其执行时间
Plugins 摘一段来自MyBatis官方文档的文字. MyBatis允许你在某一点拦截已映射语句执行的调用.默认情况下,MyBatis允许使用插件来拦截方法调用 Executor(update.q ...
- SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题
目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如 ...
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
如何用一条sql语句实现批量更新?mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现. 复制代码 代码如下: UPDATE mytable SET myfield = CASE i ...
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
- C#实现执行多条SQl语句,实现数据库事务
C#实现执行多条SQl语句,实现数据库事务 在数据库中使用事务的好处,相信大家都有听过银行存款的交易作为事务的一个例子.事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的 ...
- Spring 中jdbcTemplate 实现执行多条sql语句
说一下Spring框架中使用jdbcTemplate实现多条sql语句的执行: 很多情况下我们需要处理一件事情的时候需要对多个表执行多个sql语句,比如淘宝下单时,我们确认付款时要对自己银行账户的表里 ...
随机推荐
- 使用VS2015 编译 64位的boost库
别人写的编译参考: 目标:使用VS2015 编译 64位的boost库. 一直以来都是在Win32环境下Build和使用boost,但现在基本上每天都在64位Win7下工作,所以很有必要把这几天的经验 ...
- 用树莓派和DS18B20做个汽车温度记录仪[原创]
用树莓派和DS18B20做个汽车温度记录仪[原创] 很想知道夏日阳光暴晒下,汽车内的最高温度以及温度的变化情况.觉得用树莓派和DS18B20来实现应该很简单,于是就尝试捣鼓了一下,半天时间就搞定了,写 ...
- # 第二周c实践所遇见的问题
第二周c实践所遇见的问题 地址符 在编程练习中时常忘记写入地址符,造成过运行错误,运行结果错误的惨痛教训,一个小小的错误耗费了很长的时间来寻找错误之处,养成写代码的一些好习惯势在必行.牢记scanf( ...
- C语言学习笔记1
C语言假期学习笔记1 关于吃回车问题 第一个解决方案是使用ch=getchar(); 第二个方案是在scanf(" %c",&b):在%c加空格,将存于缓冲区的回车符读入 ...
- python append extend区别
1. 列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型. 2. append() 方法向列表的尾部添加一个新的元素. 3. 列表是以类的形式实现的.“创建”列表实际上是将一个类实例化.因 ...
- day 4 名片管理系统 -函数版
修改没有用函数的程序 具有独立功能的代码块 源程序 #1.打印功能信息 print("*"*50) print("\t名片管理系统 V3\t") print(& ...
- SPOJ11469 SUBSET
题面 Farmer John's owns N cows (2 <= N <= 20), where cow i produces M(i) units of milk each day ...
- 通过java反射机制获取该类的所有属性类型、值
转自:http://blog.csdn.net/sd4000784/article/details/7448221 方法使用了这俩个包下的 field 和method import Java.lang ...
- rem布局注意问题和meta标签
使用rem前的准备: 如果是移动端,添加name="viewport"的meta标签,其中的属性数值根据实际需求而定: <meta name="viewport&q ...
- Yii2 模块module笔记
包含内容: 使用GII新建module 建立子模块 在其他控制器中调用模块的操作(action) 1. 使用Gii工具新建module 注意模块的路径,我们没有写backend\modules\Art ...