5.1 āĻĨāĻžāĻāĻžāĻ° āĻŦāĻŋāĻŦā§āĻ¤āĻŋ
āĻāĻ¸āĻāĻŋāĻāĻāĻ˛-āĻ āĻāĻ°ā§āĻāĻāĻŋ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ
āĻĒāĻžāĻ°ā§āĻāĻ° āĻāĻā§ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ GROUP BY
, āĻāĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ HAVING
āĨ¤
āĻāĻ° āĻ
āĻ°ā§āĻĨā§, āĻāĻāĻŋ āĻ
āĻĒāĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻžāĻĻā§āĻļā§āĻ¯āĻĒā§āĻ°ā§āĻŖ WHERE
āĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° WHERE
āĻā§āĻ°ā§āĻĒ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°āĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ HAVING
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻā§āĻ°ā§āĻĒ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻ°ā§āĻāĻ°ā§āĻĄā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻā§āĻ°ā§āĻĒāĻŋāĻ āĻāĻŦāĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻŋāĻ āĻā§āĻ°ā§āĻĒāĻŋāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻ¯āĻŧā§āĻ°āĻŋāĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĻā§āĻļā§āĻ¯āĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING condition
HAVING
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§ā§ āĻĨāĻžāĻāĻ˛ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ GROUP BY
āĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻ˛āĻŋāĻāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻŦāĻāĻ°ā§āĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻā§āĻ¤ āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŋāĨ¤
SELECT
YEAR(join_date) AS hire_year,
COUNT(*) AS total
FROM employee
GROUP BY hire_year
āĻāĻŦāĻ āĻāĻ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛:
āĻāĻžāĻĄāĻŧāĻž_āĻŦāĻāĻ° | āĻŽā§āĻ |
---|---|
2012 | 1 |
2013 | 1 |
2014 | 1 |
2015 | 2 |
2018 | 1 |
āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻĨā§āĻā§ āĻŦāĻžāĻĻ āĻĻāĻŋāĻ āĻ¯ā§ āĻŦāĻāĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ āĻŦāĻž āĻāĻŽ āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
SELECT
YEAR(join_date) AS hire_year,
COUNT(*) AS total
FROM employee
GROUP BY hire_year
HAVING total > 1
āĻāĻŦāĻ āĻāĻ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛:
āĻāĻžāĻĄāĻŧāĻž_āĻŦāĻāĻ° | āĻŽā§āĻ |
---|---|
2015 | 2 |
5.3 āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻāĻĻā§āĻļ
āĻ¸āĻ āĻŋāĻ āĻāĻŦāĻ āĻĻāĻā§āĻˇ SQL āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻ˛āĻŋāĻāĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻŦā§āĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻŋāĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ˛āĻŋ SQL āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻ ā§āĻ°āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻā§āĻāĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻĒā§āĻ¨āĻ°ā§āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĻā§āĻļ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¨āĻž.
āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻāĻ āĻā§āĻ°āĻŽā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ§āĻžāĻĒā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ 1 - āĻ¸āĻžāĻ°āĻŋ āĻāĻ¨āĻž
- āĻĒā§āĻ°āĻĨāĻŽā§, āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻŦāĻŋāĻ˛ āĻĨā§āĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻžāĻ°āĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻžāĻ°āĻŋāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻā§āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻāĻā§āĻ˛āĻŋāĻ āĻĨāĻžāĻā§ āĻ¯āĻž āĻļāĻ°ā§āĻ¤ āĻĒā§āĻ°āĻŖ āĻāĻ°ā§
WHERE
- āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ 2 - āĻā§āĻ°ā§āĻĒāĻŋāĻ
- āĻā§āĻ°ā§āĻĒāĻŋāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
- āĻā§āĻ°ā§āĻĒāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻ¯ā§āĻŽāĻ¨
COUNT(*)
. - āĻ
āĻŦāĻļā§āĻˇā§, āĻā§āĻ°ā§āĻĒāĻŋāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§ āĻāĻāĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
HAVING
āĨ¤ - āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ 3 - āĻŦāĻžāĻāĻžāĻ
- āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¸āĻžāĻ°āĻŋāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§
ORDER BY
āĨ¤
āĻ
āĻŦāĻļā§āĻˇā§, āĻĢāĻ˛āĻžāĻĢāĻ˛ LIMIT
āĻāĻŦāĻ āĻ¸āĻā§āĻā§ āĻāĻžāĻāĻāĻž āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ OFFSET
āĨ¤