×

HAVING در SQLite

فصل بیستم :

HAVING در SQLite

این عبارت ما را قادر میسازد تا فیلتر هایی را جهت نمایش مقادیر گروبندی شده توسطGROUP BY اعمال نماییم.
بوسیله WHEREشروطی را برای نمایش سطر ها مشخص میکینم در صورتیکه با HAVING شروطی را برای گروههای ساخته شده توسط GROUP BY مشخص میکینم.

ترتیب هریک از عبارات در دستور سلکت بشکل ذیل است:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

هنگامی که می خواهیم ازHAVING استفاده کنیم حتما بایستی GROUP BY هم داشته باشیم.

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

 

حالا سلکت ذیل را اجرا کنید :
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
     


رکورد هایی را بیاور که برحسب فید NAME گروهبندی شده اند و گروهشان شامل کمتر از 2 رکورد است
همانطور که میبینیم James در نتایج مشاهد نمی شود چون 3 تا James داریم.
حالا
sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) > 2;
و نتیجه :
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
10          James       45          Texas       5000

     


مفاهیم و موضوعات این فصل عبارتند از :

  • عبارت HAVING در SQLite

vatantop
نظرات و سوالات درج سوال/ نظر