English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
HAVING子句使您可以指定条件,以过滤哪些组结果出现在最终结果中。
WHERE子句在所选列上放置条件,而HAVING子句在GROUP BY子句创建的组上放置条件。
以下是HAVING子句在SELECT查询中的位置。
SELECT FROM WHERE GROUP BY HAVING ORDER BY
HAVING子句必须在查询中的GROUP BY子句之后,并且如果使用,还必须在ORDER BY子句之前。以下是SELECT语句的语法,包括HAVING子句。
SELECT columna1, columna2 FROM tabla1, tabla2 WHERE [ condiciones ] GROUP BY columna1, columna2 HAVING [ condiciones ] ORDER BY columna1, columna2
考虑带有以下记录的COMPANY表。
ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Noruega 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 Sur-Hall 45000.0 7 James 24 Houston 10000.0 8 Paul 24 Houston 20000.0 9 James 44 Noruega 5000.0 10 James 45 Texas 5000.0
以下是示例,它将显示名称计数小于2registros.
sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) < 2;
Esto producirá el siguiente resultado.
ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000 5 David 27 Texas 85000 6 Kim 22 Sur-Hall 45000 4 Mark 25 Rich-Mond 65000 3 Teddy 23 Noruega 20000
A continuación se muestra un ejemplo que mostrará los nombres contando más de2registros.
sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) > 2;
Esto producirá el siguiente resultado.
ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 10 James 45 Texas 5000