Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

MAX() no ORACLE SQL


As colunas que você adicionou na cláusula SELECT sem uma função agregada devem estar na cláusula GROUP BY.


Para deixar um pouco claro:
Tome este exemplo:


Você tem TransactionID, AccountID, TransactionAmount, TransactionDate em sua cláusula SELECT e precisa de SUM(TransactionAmount) em todas as datas, nesse caso, se você adicionar
SELECT TransactionDate, TransactionID, AccountID, SUM(TransactionAmount) 
FROM Table 
GROUP BY TransactionDate

Então você receberá um erro, porque
Suponha que você tenha 4 transações em 20160101 e cada transaçãoAmount seja $ 1000
Sua expectativa de resultado será

TransDate      TransAmt
 20140101          4000

Nesse caso, se você trouxer outros atributos na cláusula SELECT como AccountID e TransactionID, para onde eles irão? É por isso que temos que incluir todos os atributos na cláusula GROUP, qualquer que seja a cláusula SELECT, exceto aquele que está com a função AGGREGATE.