PostgreSQL Having子句

115 阅读1分钟

在PostgreSQL中,HAVING子句与GROUP BY子句组合使用,用于选择函数结果满足某些条件的特定行

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

例

从雇员表里选择姓名,分组并选择姓名出现数量小于2的记录

NVIDIA_Share_INMzUNvCBh.png

SELECT NAME FROM EMPLOYEES 
GROUP BY NAME 
HAVING COUNT (NAME) < 2;
所有姓名出现的记录均小于2

NVIDIA_Share_LgJWJSOgPX.png

例2

插入重复记录

INSERT INTO EMPLOYEES VALUES (7, 'Minsu', 24, 'Delhi', 135000); 
INSERT INTO EMPLOYEES VALUES (8, 'Manisha', 19, 'Noida', 125000); 
此时表如下图

NVIDIA_Share_ySOZrwzj38.png

   SELECT NAME,COUNT (NAME) FROM EMPLOYEES
   GROUP BY NAME 
   HAVING COUNT (NAME) > 1; 
   从雇员表选择姓名,分组并选择姓名出现数量大于2的记录
   结果如下

NVIDIA_Share_troVO1v5YQ.png