SQLite HAVING 子句
HAVING子句允許指定條件,過濾分組結果將出現在最終結果。
WHERE子句所選列的條件,而HAVING子句條件由GROUP BY子句創建分組。
語法
以下是HAVING子句的SELECT查詢中的位置:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
HAVING子句必須遵循在GROUP BY子句中的查詢,也必須先如果使用ORDER BY子句。以下是SELECT語句的語法,包括HAVING子句:
SELECT column1, column2 FROM table1, table2 WHERE [ conditions ] GROUP BY column1, column2 HAVING [ conditions ] ORDER BY column1, column2
例子:
考慮COMPANY表有以下記錄:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 8 Paul 24 Houston 20000.0 9 James 44 Norway 5000.0 10 James 45 Texas 5000.0
下麵的例子,這將顯示記錄名稱計數小於2:
sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) < 2;
這將產生以下結果:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000 5 David 27 Texas 85000 6 Kim 22 South-Hall 45000 4 Mark 25 Rich-Mond 65000 3 Teddy 23 Norway 20000
以下的例子,它會顯示名稱數量大於2的記錄:
sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) > 2;
這將產生以下結果:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 10 James 45 Texas 5000