Question

    Given the following SQL query: SELECT department

    _ id, COUNT(*) AS employee _ count FROM employees GROUP BY department_id HAVING COUNT(*) > 5; What is the purpose of the HAVING clause in this query?
    A To filter rows before grouping them. Correct Answer Incorrect Answer
    B To filter rows after grouping them. Correct Answer Incorrect Answer
    C To apply a condition to the entire table. Correct Answer Incorrect Answer
    D To apply conditions only to the COUNT(*) function. Correct Answer Incorrect Answer
    E To sort the rows by department _ id. Correct Answer Incorrect Answer

    Solution

    The HAVING clause is used in SQL to filter groups created by the GROUP BY clause based on an aggregate function. 1. Aggregate Filtering: Unlike the WHERE clause, which filters rows before grouping, HAVING applies conditions on grouped data. 2. Purpose in Query: In this query, the HAVING clause ensures that only those departments with more than 5 employees (as determined by COUNT(*)) are included in the result set. 3. Execution Process: o The GROUP BY groups the data by department_id. o The COUNT(*) calculates the number of employees in each department. o The HAVING clause filters out groups where COUNT(*) is less than or equal to 5. This differentiation between WHERE and HAVING is crucial for effective data querying. Why Other Options Are Incorrect: • A) To filter rows before grouping them: The WHERE clause performs pre-grouping filtering, not HAVING. • C) To apply a condition to the entire table: HAVING only applies conditions to grouped results. • D) To apply conditions only to the COUNT(*) function: While COUNT(*) is used, the HAVING clause applies to groups as a whole. • E) To sort the rows by department_id: Sorting is achieved using the ORDER BY clause, not HAVING.

    Practice Next