HAVING子句

HAVING子句可以让我们筛选分组后的各组数据。

WHERE子句在所选列上设置条件,而HAVING子句则在由GROUP BY子句创建的分组上设置条件。

语法格式

  1. SELECT
  2. { * | [column, ...] }
  3. [ FROM from_item [, ...] ]
  4. [ WHERE condition ]
  5. [ GROUP BY grouping_element [, ...] ]
  6. [ HAVING condition [, ...] ]
  7. [ ORDER BY {expression [ ASC | DESC ] }];

参数说明

  • HAVING子句

    与GROUP BY子句配合用来选择特殊的组。HAVING子句将组的一些属性与一个常数值比较,只有满足HAVING子句中的逻辑表达式的组才会被提取出来。

示例

下面实例将找出根据c_first_name字段值进行分组,并且c_first_name字段的计数少于 2 数据:

  1. openGauss=# SELECT c_first_name FROM customer_t1 GROUP BY c_first_name HAVING count(c_first_name) < 2;

结果如下。

  1. c_first_name
  2. --------------
  3. James
  4. Local
  5. Joes
  6. (4 rows)

下面实例将找出根据c_first_name字段值进行分组,并且名称的计数大于1数据:

  1. openGauss=# SELECT c_first_name FROM customer_t1 GROUP BY c_first_name HAVING count(c_first_name) > 1;

结果如下。

  1. c_first_name
  2. --------------
  3. Grace
  4. Lily
  5. (2 rows)