当前位置: 首页 > 编程笔记 >

SQL 使用HAVING子句过滤GROUP BY结果

弓磊
2023-03-14
本文向大家介绍SQL 使用HAVING子句过滤GROUP BY结果,包括了SQL 使用HAVING子句过滤GROUP BY结果的使用技巧和注意事项,需要的朋友参考一下

示例

HAVING子句过滤GROUP BY表达式的结果。注意:以下示例使用的是Library示例数据库。

例子:

返回写了不止一本书的所有作者(在线示例)。

SELECT
  a.Id,
  a.Name,
  COUNT(*) BooksWritten
FROM BooksAuthors ba
  INNER JOIN Authors a ONa.id= ba.authorid
GROUP BY
  a.Id,
  a.Name
HAVING COUNT(*) > 1    -- equals to HAVING BooksWritten > 1
;

返回作者超过三名的所有书籍(实时示例)。

SELECT
  b.Id,
  b.Title,
  COUNT(*) NumberOfAuthors
FROM BooksAuthors ba
  INNER JOIN Books b ONb.id= ba.bookid
GROUP BY
  b.Id,
  b.Title
HAVING COUNT(*) > 3    -- equals to HAVING NumberOfAuthors > 3
;
           

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

  • HAVING 子句 在SELECT 语句中指定,显示哪些已用 GROUP BY 子句分组的记录。在GROUP BY组合了记录后, HAVING会显示 GROUP BY 子句 分组的任何符合 HAVING 子句的记录。 语法 SELECT 字段表 FROM 表 WHERE选择准则 GROUP BY 分组字段表 [HAVING分组准则] 包含 HAVING 子句的 SELECT 语句具有以下几个部分:

  • 主要内容:语法,实例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子句那样工作。 请注意,子句过滤分组的行,而子句过滤行。这是

  • 问题内容: 因此,我的数据库包含项目清单: 我还有第二张表,该表将一些标签与项目相关联: 一个项目可能具有与之关联的几个标签(例如5、20和25),因此对于标签表中的每个标签值都有一行。 我希望能够确定某个特定标签是否与某个商品相关联,而又不会丢失所有其他标签数据。例如, 不起作用,因为它消除了包含其他标记值的行(如果tag.id为27,则它不能是特定行上的任何其他值)。 为了解决这个问题,我想使

  • 问题内容: 我想用类似SQL的子句过滤Pyspark DataFrame ,如 元组在哪儿?我收到此错误: java.lang.RuntimeException:[1.67]错误:预期“(”,但找到了标识符 这基本上是说它期待的是 ‘(1,2,3)’ 而不是a。问题是由于从另一个作业中提取了值,因此我无法手动将其写入。 在这种情况下,我该如何过滤? 问题答案: 您传递给它的字符串是在SQL环境范围