sql >> Base de Datos >  >> RDS >> Oracle

MAX() en ORACLE SQL

Las columnas que haya agregado en la cláusula SELECT sin una función agregada deben estar en la cláusula GROUP BY.

Para que quede un poco claro:
Tome este ejemplo:

Tiene TransactionID, AccountID, TransactionAmount, TransactionDate en su cláusula SELECT, y necesita SUM (TransactionAmount) en todas las fechas, en ese caso, si agrega

SELECT TransactionDate, TransactionID, AccountID, SUM(TransactionAmount) 
FROM Table 
GROUP BY TransactionDate

Entonces obtendrá un error, por qué porque
Suponga que tiene 4 transacciones en 20160101 y cada cantidad de transacción es de $ 1000
Su expectativa de resultado será

TransDate      TransAmt
 20140101          4000

En este caso, si trae otros atributos en la cláusula SELECT como AccountID y TransactionID, ¿a dónde irán? Esta es la razón por la que tenemos que incluir todos los atributos en la Cláusula GROUP en la cláusula SELECT, excepto el que tiene la función AGGREGATE.