当前位置: 首页 > 知识库问答 >
问题:

在where子句和having子句之间执行联合/或操作

欧阳高昂
2023-03-14

我正在为一个SQL的实现工作,它应该在Where和Having子句之间使用联合操作来显示结果。例如,

Select * from table where col1= 'get' group by col2 (OR/UNION) having avg(col3) >30 . This is not valid but trying to give use a case

sql语句的目的是返回同时满足where和having条件的结果集。

Like, the below query

resultset1<=select*from table1,其中col1='get';resultset2<=select*from table1 group by col2 avg(col3)>30

final results=resultset1+resultset2在实现这种场景时,有没有更好的方法或想法?

假设我有下面的过滤器组合

col1=23或avg(col2)>30且avg(col3)=10或avg(col1)<10且col2=10

我需要在SQL中显示满足这些条件的结果

共有1个答案

柳涵意
2023-03-14

不清楚您想从这个准SQL中得到什么。我想您需要选择具有两个条件的记录col1='get'和/或?具有平均(col3)>30。所以这里是解决方案:

Select * from table 
 where (col1= 'get')
 OR 
 col2 in (SELECT col2 FROM table GROUP BY col2 HAVING avg(col3) >30) 

如果同时需要这两个条件,那么将OR替换为AND。

如果只需要计算col1='get'的平均数值,则将此条件添加到子查询中:

Select * from table 
 where (col1= 'get')
 OR 
 col2 in (SELECT col2 FROM table WHERE (col1= 'get') 
                      GROUP BY col2 
                      HAVING avg(col3) >30) 
 类似资料:
  • 问题内容: 我正在尝试使用一个简单的已提交字段在MySQL中获取记录。更准确地说,用户输入名称(名字或姓氏或全名),服务器应返回匹配的行。 到目前为止,我正在做的事情是这样的: 暂时可以正常工作,但是(显然)当用户提交全名时,该方法将无法正常工作。有没有办法在整个“ WHERE类型条件”和“ HAVING类型条件”之间添加OR?这样,我可以做类似的事情: 我知道我可以拆分原始字符串,但这会产生一些

  • 主要内容:语法,实例HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。 WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。 语法 下面是 HAVING 子句在 SELECT 查询中的位置: 在一个查询中,HAVING 子句必须放在 GROUP BY 子句之后,必须放在 ORDER BY 子句之前。下面是包含 HAVING 子句的 SELECT

  • 主要内容:Oracle HAVING子句简介,Oracle HAVING子句的例子在本教程中将学习如何使用Oracle 子句过滤由子句返回分组。 Oracle HAVING子句简介 子句是SELECT语句的可选子句。它用于过滤由GROUP BY子句返回的行分组。 这就是为什么子句通常与子句一起使用的原因。 以下说明了Oracle子句的语法: 在这个语句中,子句紧跟在子句之后。如果使用不带子句的子句,则子句将像WHERE子句那样工作。 请注意,子句过滤分组的行,而子句过滤行。这是

  • HAVING 子句 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。 HAVING 子句可以让我们筛选分组后的各组数据。 SQL HAVING 语法SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP

  • 问题内容: 当在主键列上连接两个简单表并放置附加相等条件时,可以在连接本身或where子句中完成。 例如,以下等价。 我的问题是-是否有理由使用一种样式而不是另一种样式? …对比: 问题答案: 这是样式问题。通常,您需要将定义结果集的“形状”的条件放在FROM子句中(即那些控制每个表的哪些行应连接在一起以产生结果的条件),而那些条件将对结果进行 过滤 set应该在WHERE子句中。对于INNER

  • 本章提供了有关如何使用JDBC应用程序从表中选择记录的示例。 这将在从表中选择记录时使用WHERE子句添加其他条件。 在执行以下示例之前,请确保您具备以下示例 - 要执行以下示例,您可以使用实际用户名和密码替换用户名和密码。 您的MySQL或您正在使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Import the