Movatterモバイル変換


[0]ホーム

URL:


Translate:
  • Follow Us

  • Pages

  • Find a Job
  • DFP-300×250-1

  • Newsletter Subscription

      Email

      Country


    • Jobboard

    • In SQL, what’s the difference between the having clause and the group by statement?

       

      In SQL, the having clause and the group by statement work together when using aggregate functions like SUM, AVG, MAX, etc. This is best illustrated by an example. Suppose we have a table called emp_bonus as shown below. Note that the table hasmultiple entries for employees A and B – which means that both employees A and B have received multiple bonuses.

      emp_bonus
      EmployeeBonus
      A 1000
      B 2000
      A 500
      C 700
      B 1250

      If we want to calculate thetotal bonus amount that each employee has received, then we would write a SQL statement like this:

      select employee, sum(bonus) from emp_bonus group by employee;

      The Group By Clause

      In the SQL statement above, you can see that we use the "group by" clause with the employee column. The group by clause allows us to find the sum of the bonuses foreach employee – because each employee is treated as his or her very own group. Using the ‘group by’ in combination with the ‘sum(bonus)’ statement will give us the sum of all the bonuses for employees A, B, and C.

      Subscribe to our newsletter for more free interview questions.

      Running the SQL above would return this:

      EmployeeSum(Bonus)
      A 1500
      B 3250
      C 700

      Now, suppose we wanted to find the employees who received more than $1,000 in bonuses for the year of 2012 – this is assuming of course that the emp_bonus table contains bonuses only for the year of 2012. This is when we need to use theHAVING clause to add the additional check to see if the sum of bonuses is greater than $1,000, and this is what the SQL look like:

      GOOD SQL:select employee, sum(bonus) from emp_bonus group by employee having sum(bonus) > 1000;

      And the result of running the SQL above would be this:

      EmployeeSum(Bonus)
      A 1500
      B 3250

      Difference between having clause and group by statement

      So, from the example above, we can see that the group by clause is used to group column(s) so that aggregates (like SUM, MAX, etc) can be used to find the necessary information. The having clause is usedwith the group by clause when comparisons need to be made with those aggregate functions – like to see if the SUM is greater than 1,000, as in our example above. So, the having clause and group by statements are not really alternatives to each other – but they are used alongside one another!

      Hiring? Job Hunting? Post a JOB or your RESUME on our JOB BOARD >>

      Subscribe to our newsletter for more free interview questions.

      Follow @programmerintvw
      Previous...
      Next...

      Would you like to thankProgrammerInterview.com for being a helpful free resource?Then why not tell a friend about us, orsimply add a link to this page from your webpage using the HTML below.

      Link to this page:

      Please bookmark with social media, your votes are noticed and appreciated:


      [8]ページ先頭

      ©2009-2025 Movatter.jp