left join 改写标量子查询
数据库环境:SQL SERVER 2005
有一博彩的赔率是1:20,它有2张业务表:smuchs(投注表),lottery(开奖表)。
smuchs表有3个字段,分别是sno(投注号码)、smuch(投注金额),stime(投注时间),
lottery表有2个字段,分别是lno(开奖号码)、stime(开奖时间)。smuchs表和lottery表的数据如下:
要求:根据每天的投注情况和开奖号码,统计指定日期的投注金额、中奖应支付金额、盈亏金额。
1.建表,导入模拟数据
CREATE TABLE smuchs (sno INT,smuch INT,stime DATETIME)
INSERT into smuchs values(23,100,'2015-09-01 09:10:11');
INSERT into smuchs values(02,2,'2015-09-01 12:23:28');
INSERT into smuchs values(18,4,'2015-09-01 14:02:34');
INSERT into smuchs values(32,60,'2015-09-01 14:10:58');
INSERT into smuchs values(10,26,'2015-09-02 10:57:24');
INSERT into smuchs values(27,12,'2015-09-02 15:42:34');
INSERT into smuchs values(03,14,'2015-09-02 16:12:58');
INSERT into smuchs values(19,18,'2015-09-03 17:23:24');
INSERT into smuchs values(14,30,'2015-09-03 17:25:12');
INSERT into smuchs values(02,90,'2015-09-01 18:02:34');
CREATE TABLE lottery(lno INT,ltime DATETIME)
INSERT INTO lottery VALUES(18,'2015-09-01 21:00:00')
INSERT INTO lottery VALUES(09,'2015-09-02 21:00:00')
INSERT INTO lottery VALUES(14,'2015-09-03 21:00:00')
2.标量实现
SELECT stime ,
smuch ,
ISNULL(lmuch, 0) AS lmuch ,
smuch - ISNULL(lmuch, 0) slmuch
FROM ( SELECT CONVERT(VARCHAR(10), sh.stime, 121) AS stime ,
SUM(sh.smuch) AS smuch ,
20
* ( SELECT SUM(smuch)
FROM smuchs
INNER JOIN lottery ON lottery.lno = smuchs.sno
AND CONVERT(VARCHAR(10), lottery.ltime, 121) = CONVERT(VARCHAR(10), smuchs.stime, 121)
AND CONVERT(VARCHAR(10), sh.stime, 121) = CONVERT(VARCHAR(10), smuchs.stime, 121)
) AS lmuch
FROM smuchs sh
GROUP BY CONVERT(VARCHAR(10), sh.stime, 121)
) t
aaarticlea/png;base64,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" alt="" />
这是某网友的实现方法,我们可以看到,smuchs表被扫描了4次,lottery表被访问了3次。通过
查看执行计划,发现外部表和子查询部分走的是嵌套循环。如果数据很多,这个SQL的查询速度会比较慢。
3.left join实现
/*合计每个号码的投注金额*/
WITH x0
AS ( SELECT sh.sno ,
SUM(sh.smuch) AS smuch ,
CONVERT(VARCHAR(10), sh.stime, 121) AS stime
FROM smuchs sh
GROUP BY sno ,
CONVERT(VARCHAR(10), sh.stime, 121)
),
x1
AS ( SELECT sh.sno ,
sh.smuch ,
sh.stime ,
ly.lno
FROM x0 sh
LEFT JOIN lottery ly ON ly.lno = sh.sno
AND CONVERT(VARCHAR(10), ly.ltime, 121) = sh.stime
),
x2
AS ( SELECT stime ,
SUM(smuch) AS smuch ,--统计所有投注金额
20 * SUM(CASE WHEN lno IS NOT NULL THEN smuch
END) AS lmuch--统计中奖应付金额
FROM x1
GROUP BY stime
)
SELECT stime ,
smuch ,
ISNULL(lmuch, 0) AS lmuch ,
smuch - ISNULL(lmuch, 0) slmuch
FROM x2
aaarticlea/png;base64,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" alt="" />
通过left join改写,lottery表和smuchs表均只被扫描1次。
统计的结果如图:
aaarticlea/png;base64,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" alt="" />
(本文完)
left join 改写标量子查询的更多相关文章
- 标量子查询SQL改写
一网友说下面sql跑的好慢,让我看看 sql代码: select er, cid, pid, tbl, zs, sy, (select count(sr.mobile_tele_no) from tb ...
- 优化有标量子查询的SQL
数据库环境:SQL SERVER 2008R2 今天在数据库中抓出一条比较耗费资源的SQL,只返回904条数据,居然跑了40多分钟.SQL及对应的数据量如下图: SELECT saft04.cur_y ...
- Oracle sql优化之分析函数优化标量子查询
待优化语句如下 select a.code as code, a.m_code as m_code,a.stktype as f_stype,a.e_year as e_year, b.sname a ...
- 标量子查询中有ROWNUM=1怎么改?
碰到标量子查询中有ROWNUM=1怎么改? select to_date(o.postdate,'yyyymmdd'), (select cur.c_code from cur_tbl cur whe ...
- 标量子查询调优SQL
fxnjbmhkk4pp4 select /*+ leading (wb,sb,qw) */ 'blocker('||wb.holding_session||':'||sb.username||')- ...
- SELECT列表中的标量子查询
发现了一种表连接新的写法,以前还没有这样写过或者见别人写过.跟同学聊天他们公司却很多人这样写,看来真的要学学sql了 表 CREATE TABLE `t_book` ( `FId` ) NOT NUL ...
- WHERE 子句中的标量子查询
标量子查询不仅可以用在SELECT 语句的列表中,它还可以用在WHERE 子句中,而且实际应用中子查询很多的时候都是用在WHERE子句中的. 先来看一个简单的例子,我们要检索喜欢“Story”的读者主 ...
- 在MySQL中使用子查询和标量子查询的基本用法
一.MySQL 子查询 子查询是将一个 SELECT 语句的查询结果作为中间结果,供另一个 SQL 语句调用.MySQL 支持 SQL 标准要求的所有子查询格式和操作,也扩展了特有的几种特性.子查询没 ...
- SQL Server的优化器会缓存标量子查询结果集吗
在这篇博客"ORACLE当中自定义函数性优化浅析"中,我们介绍了通过标量子查询缓存来优化函数性能: 标量子查询缓存(scalar subquery caching)会通过缓存结果减 ...
随机推荐
- FIREDAC数据引擎
以前使用过BDE.ADO.DBX等数据引擎,后来发现它们都没有UNIDAC好用, 所以在很长的一段时间内中间件都使用UNIDAC作为数据引擎. 偶然的机会,使用了DELPHI XE5自带的FIREDA ...
- _int、NSInteger、NSUInteger、NSNumber的区别和联系
1.首先先了解下NSNumber类型: 苹果官方文档地址:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/F ...
- 通过dbcc page来查看表中的数据
--1.先建表 CREATE TABLE test(idd INT NOT NULL,name VARCHAR(10) NULL) INSERT INTO TEST SELECT 1,'abcdefg ...
- Jquery ajax 得到返回值
Jquery ajax 得到返回值 1.ajax默认是异步调用的,所以得到的返回值是空值,要得到值必须改成同步:async: false,//同步. 2.必须定义一个全局变量 var result = ...
- Mysql之二
MySQL的数据类型 SQL接口 标准: ANSI SQL:SQL-86--------SQL-89--------SQL-99---------SQL-03 数据类型 字符型: CHAR(不区分字母 ...
- Oracle- 日期格式和数字类型处理
更新数据库时间格式的显示格式的语句:(alter session set nls_date_format='YYYY-MM-dd'); to_date("要转换的字符串",&quo ...
- iOS 应用数据存储的常用方式
iOS 开发中,经常会有将数据存储到本地的需求.比如一些数据的缓存,或者记录下用户的账号密码,记录下下次是否自动登录等,这些都需要将数据记录到本地.iOS中,数据存储到本地的常见方式有三种: 一: 使 ...
- mysql之字符集与校对集
一.字符集 1.mysql的字符集设置非常灵活 可以设置服务器默认字符集: 数据库默认字符集: 表默认字符集: 列字符集: 如果某一级别没有指定字符集,则继承上一级. 查看所有字符集语句:show c ...
- 取消jQuery validate验证
有时候当我们在编辑页面点保存后加上了validate错误验证后又想用表单提交的方式返回界面没有清除验证就返回不了 加上这句话就清除验证了 注意:remove()是删除了相关标签 我这需求是 ...
- [AngularJS - app] AngularJS Location-picker app
From: http://rangle.io/blog/two-ways-to-build-a-location-picker-for-a-mobile-angularjs-application/ ...