Eine Einführung in

SQL

Msg 147 An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.

MS SQL Server

Problem

We want to filter the results returned based on an aggregate function such as COUNT or SUM.

The WHERE clause may not be used for this. The WHERE conditions are considered before the aggregation.

Solutions

  • Put the condition into the HAVING clause, after the GROUP BY clause.
  • SELECT winner FROM nobel
      GROUP BY winner
      HAVING COUNT(winner)>1


Specific to MS SQL Server
none