清明节后公司网站搞活动主要功能很简单就是实现一个消费送的功能。比如, 当天消费金额满5000 返回10%,5000 及以下 返 7% 的功能。本身这个功能不是很难,但是  这个功能跟上次的一个 新用户消费送的活动重复了。于是,上面发话说,两个活动只能享受一个 。于是乎 问题来了。 在做排除的时候我先用的是 not in , 就是先查出满足条件的 所有用户 然后在查出今天已经送过的用户用not in 对比,其实这样的思路很正常。但是忘记考虑效率问题了、写完之后负责人一看, 说:不行, 你这写的太麻烦了,执行效率很慢,优化优化吧。。

本身对SQL 的执行效率就不 是很了解。想了各种办法 ,但是都说执行效率慢。 实在没招了,就要放弃的时候,老同事说让我跟另外一个新同事商量商量。就去问问了问她的思路。其实这不是她的任务 估计她也没多想,商量了半天 她也没什么好主意。但是虽然说她 没给解决办法,但是经过跟她这么一说 还真是有了新思路

  select o.initiate_user_id, nvl(sum(o.money), 0) totalMoney,case when nvl(sum(o.money), 0) >= 5000 then  10 else  7 end precent,o.initiate_username
from tb_order o
where o.bonus_status = 4
and o.print_status = 2
and o.quash_type = 0
and to_char(o.buy_time, 'yyyy-MM-dd') = to_char(sysdate - 1, 'yyyy-MM-dd')
/*and to_char(o.buy_time, 'yyyy-MM-dd') = to_char(sysdate - 1 - 3, 'yyyy-MM-dd') ----测试数据*/
and o.lottery_id = 82
group by o.initiate_user_id, o.initiate_username
having (select count(f.change_id) from b_fund_chng f
where f.change_type = 1
and f.reason_type = 48
and f.reason_id = o.initiate_user_id || to_char(sysdate, 'yyyyMMdd')
/*and f.reason_id = o.initiate_user_id || to_char(sysdate - 3, 'yyyyMMdd') ----测试数据*/
)<1
order by totalMoney desc;

这里百度了一下 having的用法:

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

在这里写一个简单 的 sql 语句

select em_id, sum(gl_limit),SUM(gl_already_get) from t_get_limit group by em_id having sum(gl_limit)>60

被遗忘的having的更多相关文章

  1. IOS 杂笔-14(被人遗忘的owner)

    *owner在开发中现在已经很少用了 有兴趣的童鞋可以看看* 我们遇到owner通常是在类似 [[[NSBundle mainBundle] loadNibNamed:@"Food" ...

  2. Machine Learning Algorithms Study Notes(6)—遗忘的数学知识

    机器学习中遗忘的数学知识 最大似然估计( Maximum likelihood ) 最大似然估计,也称为最大概似估计,是一种统计方法,它用来求一个样本集的相关概率密度函数的参数.这个方法最早是遗传学家 ...

  3. linux系统root密码遗忘的情况下的解决办法

    机房一台centos系统的服务器,由于这台服务器的系统装了好长时间,且root密码中间更新过几次,后面去机房现场维护时,登陆密码遗忘了,悲催啊~ 没办法,只能开机进入“单用户模式”进行密码重置了. 下 ...

  4. CentOS7 登陆密码遗忘和修改

    在虚拟机当中我们设置的linux密码可能会遗忘,那么我们怎么来找回密码,并且重置密码呢? 1:我们需要进入单用户模式才能修改密码      1:重启linux,进入grub界面,敲击空格键暂停 2:按 ...

  5. Windows Server 2008 R2遗忘管理员密码后的解决方案

    在日常的工作中,对于一个网络管理员来讲最悲哀的事情莫过于在没有备用管理员账户和密码恢复盘的情况下遗忘了本地管理员账户密码. 在早期的系统中,遇到这种事情可以使用目前国内的很多Windows PE光盘来 ...

  6. [转] 被遗忘的Logrotate

    FROM : http://huoding.com/2013/04/21/246 我发现很多人的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相 ...

  7. 如何重置CentOS/RHEL 7中遗忘的根用户帐户密码

    你有没有遇到过这种情况:想不起来Linux系统上的用户帐户密码?要是你忘了根用户密码,情况就更为糟糕.你无法执行任何面向整个系统的变更.要是你忘了用户密码,很容易使用根帐户来重置密码. 可要是你忘了根 ...

  8. 被遗忘的Android mipmaps简介

    被遗忘的 Android mipmaps 简介 [导读]已经发布的 Android Studio1.1 版本是一个 bug 修复版本.在这个版本中,当你创建工程时一项改变将会吸引你的眼球.工程创建登陆 ...

  9. 15个易遗忘的Java问题

    通常,在面试中,会遇到面试官提一些比较“偏冷”的基础知识,比如基本数据类型所占用的字节数,或者Unicode和UTF-8的区别之类的问题,这时很多应聘者会答错.还有在平常编码的过程中,很多时候会用到除 ...

  10. (转)iOS被开发者遗忘在角落的NSException-其实它很强大

    转载自 http://www.jianshu.com/p/05aad21e319e iOS被开发者遗忘在角落的NSException-其实它很强大 字数597 阅读968 评论4 喜欢28 NSExc ...

随机推荐

  1. LeetCode题解 Permutations II 和 Permutations I ——回溯算法

    这个算法感觉还是很陌生的.算法导论里没有讲这个算法,而数据结构与算法分析只用了一节来阐述.我居然跳过去了..尴尬. 笨方法解决的: 第一题: 给定一个元素不重复的数组,枚举出他们的全排列. 方法1:递 ...

  2. The Google File System 中文版

    摘要 我们设计并实现了Google文件系统,一个面向分布式数据密集型应用的.可伸缩的分布式文件系统.虽然运行在廉价的日用硬件设备上,但是它依然了提供容错功能,为大量客户机提供了很高的总体性能. 虽然与 ...

  3. 遍历DOM树,each()遍历

    在<jQuery教程/理解选取更新范围>一节中,我们知道:当选择器返回了多个元素时,可以使用一个方法来更新所有的元素,不再需要使用循环. 然后有的时候需要遍历元素,怎么办? 使用each( ...

  4. Android DevArt3:SingleTask启动模式探究:首先从MainActivity启动案例入口AActivity,并在A中启动BActivity,从B启动CActivity, 再从C中又启动AActivity, 最后在A中启动B,现在按两次back键,然后回到的是哪个Activity? 答案是,回到MainActivity。

    SingleTask启动模式探究 GitHub如题:首先从MainActivity启动案例入口AActivity,并在A中启动BActivity,从B启动CActivity,再从C中又启动AActiv ...

  5. eclipse中配置Tomcat服务器以及新建项目

    eclipse配置Tomcat服务器 http://jingyan.baidu.com/article/ca2d939dd90183eb6d31ce79.html eclipse中配置Tomcat服务 ...

  6. 为了显示此页面,Firefox 必须发送将重复此前动作的数据(例如搜索或者下订单)

    火狐浏览器重新加载页面出现下面提示,必须要点击“重新发送”才能完成刚才的请求: 这个是火狐的一个提示功能主要是防止同一页面的数据反复提交: 解决方法: 不要用location.reload();来刷新 ...

  7. hadoop-2.7.3完全分布式部署

    一.环境介绍      IP       host JDK linux版本 hadop版本 192.168.0.1 master 1.8.0_111 centos7.2.1511 hadoop-2.7 ...

  8. Docker 指定容量

    vim /etc/sysconfig/docker-storage加入以下命令 DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper - ...

  9. MPI Maelstrom-单源最短路-Djsktra

    BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odyssey distribute ...

  10. Oracle数据库操作总是显示运行中无法成功,删除表时报错 resource busy and acquire with NOWAIT specified

    1.直接运行以下语句: select t2.username,t2.sid,t2.serial#,t2.logon_timefrom v$locked_object t1,v$session t2wh ...