5.26. PostgreSQL HAVING clause

发布时间 :2025-10-25 12:23:19 UTC      

HAVING Clause allows us to filter the grouped data.

WHERE Clause sets the condition on the selected column, while the HAVING Clause sets the condition on the grouping created by the GROUP BY clause.

5.26.1. Grammar

The following is HAVING Clause in SELECT Location in the query:

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

HAVING The clause must be placed after the GROUP BY clause, before the ORDER BY clause, and here is HAVING The basic syntax of the clause in the SELECT statement:

SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2

5.26.2. Example

Create the COMPANY table ( 下载 COMPANY SQL 文件 ), the data are as follows:

runoobdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

The following example will find out the basis for NAME Field values are grouped, and name(名称) The count of fields is less than 2 data:

SELECT NAME FROM COMPANY GROUP BY name HAVING count(name) < 2;

The following results are obtained:

  name
 -------
  Teddy
  Paul
  Mark
  David
  Allen
  Kim
  James
(7 rows)

We add a few pieces of data to the table:

INSERT INTO COMPANY VALUES (8, 'Paul', 24, 'Houston', 20000.00);
INSERT INTO COMPANY VALUES (9, 'James', 44, 'Norway', 5000.00);
INSERT INTO COMPANY VALUES (10, 'James', 45, 'Texas', 5000.00);

At this time COMPANY The record of the table is as follows:

 id | name  | age | address      | salary
 ----+-------+-----+--------------+--------
   1 | Paul  |  32 | California   |  20000
   2 | Allen |  25 | Texas        |  15000
   3 | Teddy |  23 | Norway       |  20000
   4 | Mark  |  25 | Rich-Mond    |  65000
   5 | David |  27 | Texas        |  85000
   6 | Kim   |  22 | South-Hall   |  45000
   7 | James |  24 | Houston      |  10000
   8 | Paul  |  24 | Houston      |  20000
   9 | James |  44 | Norway       |   5000
  10 | James |  45 | Texas        |   5000
(10 rows)

The following example will find out the basis for name Field values are grouped, and the count of names is greater than 1 data:

runoobdb-# SELECT NAME FROM COMPANY GROUP BY name HAVING count(name) > 1;

The results are as follows:

 name
-------
 Paul
 James
(2 rows)
Principles, Technologies, and Methods of Geographic Information Systems  102

In recent years, Geographic Information Systems (GIS) have undergone rapid development in both theoretical and practical dimensions. GIS has been widely applied for modeling and decision-making support across various fields such as urban management, regional planning, and environmental remediation, establishing geographic information as a vital component of the information era. The introduction of the “Digital Earth” concept has further accelerated the advancement of GIS, which serves as its technical foundation. Concurrently, scholars have been dedicated to theoretical research in areas like spatial cognition, spatial data uncertainty, and the formalization of spatial relationships. This reflects the dual nature of GIS as both an applied technology and an academic discipline, with the two aspects forming a mutually reinforcing cycle of progress.