aggregate functions in where clause
 Si omite la cláusula GROUP BY, Oracle aplica funciones agregadas en la lista de selección a todas las filas de la tabla o vista consultada. Utilice funciones agregadas en la cláusula HAVING para eliminar grupos de la salida en función de los resultados de las funciones agregadas, en lugar de los valores de las filas individuales de la tabla o vista consultada.  Muchas (pero no todas) funciones agregadas que toman un solo argumento aceptan estas cláusulas: 1 DISTINCT y UNIQUE, que son sinónimos, hacen que una función agregada considere sólo valores distintos de la expresión del argumento. 2 TODO hace que una función agregada considere todos los valores, incluidos todos los duplicados. La forma correcta de usar max en la cláusula have es realizando primero una autounión: seleccione t1.a, t1.b, t1.c de la tabla1 t1 únase a la tabla1 t1_max en t1.id = t1_max.id grupo por t1.a, t1.b, t1.c teniendo t1.date = max(t1_max.date) A continuación se muestra cómo se uniría con una subconsulta:  En una consulta que contiene una cláusula GROUP BY, los elementos de la lista de selección pueden ser funciones agregadas, expresiones GROUP BY, constantes o expresiones que involucren uno de estos. Oracle aplica las funciones agregadas a cada grupo de filas y devuelve una única fila de resultado para cada grupo.  Algunas funciones agregadas permiten la cláusula windowing_clause, que forma parte de la sintaxis de las funciones analíticas. Consulte windowing_clause para obtener información sobre esta cláusula. En la lista de funciones agregadas al final de esta sección, las funciones que permiten la cláusula de ventana van seguidas de un asterisco (*) Funciones agregadas . Las funciones agregadas devuelven una única fila de resultados basada en grupos de filas, en lugar de filas individuales. Las funciones agregadas pueden aparecer en listas de selección y en cláusulas ORDER BY y HAVING. Se usan comúnmente con la cláusula GROUP BY en una declaración SELECT, donde Oracle Database divide las filas de una tabla o vista consultada en grupos.  Servidor SQL: cómo utilizar una función agregada como MAX en una cláusula WHERE. 1 Podrías usar una subconsulta... 2 Pero en realidad movería esto fuera de la cláusula donde y dentro de la declaración de unión, como un AND para la cláusula ON.  Como nota al margen (más de 5 años después), la cláusula HAVING en realidad está diseñada para usarse con elementos agrupados. Sin embargo, funciona con cláusulas agregadas (MIN, MAX, AVG) en la mayoría de los motores SQL incluso sin una cláusula GROUP BY. Versión de subconsulta: sí, necesita usar una cláusula de tener después de la cláusula Agrupar por, ya que dónde es solo para filtrar los datos en parámetros simples, pero agrupar por seguido de una declaración de tener es la idea para agrupar los datos y filtrarlos. base de alguna función agregada...  Servidor SQL: cómo utilizar una función agregada como MAX en una cláusula WHERE. Podrías usar una subconsulta... WHERE t1.field3 = (SELECT MAX(st1.field3) FROM table1 AS st1) Pero en realidad sacaría esto de la cláusula Where y lo colocaría en la declaración de combinación, como un AND para ON. cláusula.
 Utilice funciones agregadas en la cláusula HAVING.