社区首页 >问答首页 >向group和having子句添加多个条件

向group和having子句添加多个条件
EN

Stack Overflow用户
提问于 2015-03-10 08:09:06
回答 1查看 3K关注 0票数 0

3I有以下查询

代码语言:javascript
代码运行次数:0
复制
SELECT deal_id, max(test_value) - min(test_value) AS deviation
  FROM  table
  WHERE run_date >= Dateadd(month, -4, Getdate())
  and test_alias='BOND_P' 
  group by deal_id
  having (max(test_value) - min(test_value)) BETWEEN 1.79 AND 4.5 

代码语言:javascript
代码运行次数:0
复制
     SELECT deal_id, max(test_value) - min(test_value) AS deviation
  FROM  ems.cdotests
  WHERE run_date >= Dateadd(month, -3, Getdate())
  and test_alias='CAA/CCC' 
  group by deal_id
  having (max(test_value) - min(test_value)) BETWEEN 2.79 AND 2

我需要将这个查询组合起来,这样我就可以将输出作为

代码语言:javascript
代码运行次数:0
复制
1: result set of query 1 intersected with result set of query 2
2: result set of query 1 unioned with result set of query 2

“‘Intersect”或“Union”将取决于传递给存储过程的参数

Ps注意:两个查询之间的运行日期条件可能是不同的,任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-10 08:56:02

代码语言:javascript
代码运行次数:0
复制
IF @myBitParameter = 0
  SELECT deal_id, max(test_value) - min(test_value) AS deviation
  FROM  [table]
  WHERE run_date >= Dateadd(month, -4, Getdate())
  and test_alias='BOND_P' 
  group by deal_id
  having (max(test_value) - min(test_value)) BETWEEN 1.79 AND 4.5 

  UNION ALL --or UNION, if you don't want duplicates

  SELECT deal_id, max(test_value) - min(test_value) AS deviation
  FROM  ems.cdotests
  WHERE run_date >= Dateadd(month, -3, Getdate())
  and test_alias='CAA/CCC' 
  group by deal_id
  having (max(test_value) - min(test_value)) BETWEEN 2.79 AND 2

ELSE
  SELECT deal_id, max(test_value) - min(test_value) AS deviation
  FROM  [table]
  WHERE run_date >= Dateadd(month, -4, Getdate())
  and test_alias='BOND_P' 
  group by deal_id
  having (max(test_value) - min(test_value)) BETWEEN 1.79 AND 4.5 

  INTERSECT

  SELECT deal_id, max(test_value) - min(test_value) AS deviation
  FROM  ems.cdotests
  WHERE run_date >= Dateadd(month, -3, Getdate())
  and test_alias='CAA/CCC' 
  group by deal_id
  having (max(test_value) - min(test_value)) BETWEEN 2.79 AND 2

我觉得应该有一个方法来做这个清洁剂与CTE的,但没有时间来愚弄它了。有人可以把这件事清理干净,或者找出一个更好的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28968610

复制
相关文章
MySQL HAVING 子句
上一章阿常给大家讲了MySQL 分组函数,今天我们讲 MySQL HAVING 子句。
程序媛淼淼
2022/09/01
7230
MySQL HAVING 子句
SQLite Having 子句
WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。
子润先生
2021/07/01
4720
[译]PostgreSQL HAVING子句
了解GROUP BY和HAVING子句的工作原理可以帮助写出更加高效的SQL。这里用一个真实例子来说明这一点。
yzsDBA
2022/09/06
9100
SQL中,having子句和where子句的区别
在SQL之中,where和having的功能有点像,导致我一直搞不清楚这两者的区别。因此今天专门研究了以下,在此记录。
灯珑LoGin
2022/10/31
2.6K0
十、GROUP BY 和 HAVING 的使用
这时我们就可以使用 group by 语句来解决这类需求。从字面上来理解,group by 表示根据某种规则对数据进行分组,他必须配合聚合函数进行使用,对数据进行分组后可以进行 count、sum、avg、max 和 min 运算。语法如下:
喵叔
2021/06/25
1.1K0
group by和having的区别
注意:分组函数一般都会和group by 联合使用,这也是为什么它被称为分组函数的原因。并且任何一个分组函数(count sum avg max min)都是在group by语句结束之后才会执行的。当一条sql语句没有group by的话,整张表的数据会自成一组。
共饮一杯无
2022/11/24
6120
MySQL | Having子句的使用
数据操作语言:HAVING 子句 分组查询遇到的困难? 查询部门平均底薪超过2000元的部门编号 错误示范 SELECT deptno FROM t_emp WHERE AVG(sal) >=2000 -- 错在这里出现了聚合函数 GROUP BY deptno; 引入 HAVING 子句 SELECT deptno FROM t_emp GROUP BY deptno HAVING AVG(sal)>=2000; HAVING 子句的用途 查询每个部门中,1982 年以后入职的员工超过 2 个人的部门编
Zkeq
2022/05/18
9100
group by和order by having where 执行顺序[order by升序]
查询语句中select from where group by having order by的执行顺序
Java架构师必看
2022/03/30
9280
group by和order by having where 执行顺序[order by升序]
SQL进阶-11-having子句
HAVING子句是SQL中非常重要的功能,本文将再次介绍该子句的使用。作者指出:SQL语句处理的对象是集合而不是记录,我们要有面向集合的思考方式。
皮大大
2021/03/01
7020
ClickHouse中的HAVING、ORDER BY和LIMIT BY子句的使用
在ClickHouse中,HAVING子句用于对查询结果进行条件过滤。它用于在GROUP BY子句之后对聚合结果进行筛选。
一凡sir
2023/10/21
1.2K0
ClickHouse中的HAVING、ORDER BY和LIMIT BY子句的使用
大数据ClickHouse进阶(十四):ClickHouse的HAVING和ORDER BY子句
ClickHouse也支持Having子句,需要与group by 同时出现,不能单独使用,它能够在聚合计算之后实现二次过滤数据。操作如下:
Lansonli
2022/10/15
1K0
大数据ClickHouse进阶(十四):ClickHouse的HAVING和ORDER BY子句
sql中的 where 、group by 和 having 用法解析
–如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术
Twcat_tree
2022/11/30
12.9K0
sqlzoo练习17-group by and having
GROUP BYandHAVING By including a GROUP BY clause functions such as SUM and COUNT are applied to groups of items sharing values. When you specify GROUP BY continent the result is that you get only one row for each different value of continent. All the oth
皮大大
2021/03/02
2930
深入分析SQL中的group-by和having
    这篇文章主要介绍了SQL中的group by 和 having 用法浅析,需要的的朋友参考下吧。
叫我可儿呀
2019/11/29
4.2K0
深入分析SQL中的group-by和having
group by 与 where, having以及顺序
1. GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前. HAVING语句必须在ORDER BY子句之后。(where先执行,再groupby分组;groupby先分组,having在执行。)
全栈程序员站长
2022/09/01
2.8K0
group by 与 where, having以及顺序
「SAP ABAP」OPEN SQL(七)【GROUP BY | HAVING | ORDER BY】
💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。 ---- 💅文章概要: 各位小伙伴们大家好呀!今天继续SAP ABAP系列文章的讲解,本节带来的内容是OPEN SQL中GROUP BY语句和HAVING语句以及ORDER BY语句的介绍,希
THUNDER王
2023/03/20
2.8K0
「SAP ABAP」OPEN SQL(七)【GROUP BY | HAVING | ORDER BY】
向文本到图像扩散模型添加条件控制
Adding Conditional Control to Text-to-Image Diffusion Models
计算机视觉
2023/02/24
2.6K0
向文本到图像扩散模型添加条件控制
collectors.groupingby属性分组_group by having order by
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171407.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/23
7660
collectors.groupingby属性分组_group by having order by
SQL 查询条件放到 JOIN 子句与 WHERE 子句的差别
我们再写 SQL 的时候,最常碰到一个问题就是,把查询条件放到 JOIN 子句和放到 WHERE 子句有什么不同呢?比如:
Denis
2023/04/14
2.4K0
数据库
脏读:当事务A正在访问数据并且做了修改(‘工资2000元’改成‘工资3000元’),但是还没来得及提交,这是事务B来访问数据并且使用了该数据(‘工资2000元’)
大学里的混子
2019/03/06
1.3K0

相似问题

Grails分离条件查询和"group by“和"having”子句

12

使用group和having子句

43

group by和having子句发布

50

Oracle : GROUP和HAVING子句

45

LINQ Group by和having where子句

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档