Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

MAX() di ORACLE SQL

Kolom yang pernah Anda tambahkan dalam klausa SELECT tanpa fungsi agregat harus berada dalam klausa GROUP BY.

Untuk membuatnya sedikit lebih jelas:
Ambil Contoh ini:

Anda memiliki TransactionID, AccountID, TransactionAmount, TransactionDate di SELECT Clause Anda, dan Anda memerlukan SUM(TransactionAmount) pada semua tanggal, dalam hal ini, jika Anda menambahkan

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

Kemudian Anda akan mendapatkan error, mengapa karena
Asumsikan Anda memiliki 4 transaksi pada 20160101 dan setiap transaksiAmount adalah $1000
Hasil yang Anda harapkan adalah

TransDate      TransAmt
 20140101          4000

Dalam hal ini, jika Anda membawa atribut lain dalam klausa SELECT seperti AccountID dan TransactionID, ke mana mereka akan pergi? Inilah sebabnya mengapa kita harus memasukkan semua atribut dalam Klausa GROUP apa pun yang ada di klausa SELECT kecuali yang dengan fungsi AGGREGATE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pengumpulan massal ... untuk semua penggunaan

  2. Oracle DROP TABLE JIKA ADA Alternatif

  3. Fungsi PENGGUNA di Oracle

  4. lsnrctl start rane ketika saya menjalankan perintah ini kesalahan ini datang

  5. Kueri rekursif untuk dependensi tabel tidak berulang tidak sebanyak yang saya inginkan