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

Cara Memilih dan Memesan Berdasarkan kolom tidak dalam pernyataan Groupy By SQL - Oracle

Tidak masuk akal untuk menyertakan kolom yang bukan bagian dari klausa GROUP BY. Pertimbangkan jika Anda memiliki MIN(X), MAX(Y) dalam klausa SELECT, dari baris mana kolom lain (tidak dikelompokkan) harus berasal?

Jika versi Oracle Anda cukup baru, Anda dapat menggunakan SUM - OVER() untuk menampilkan SUM (dikelompokkan) pada setiap baris data.

SELECT  
    IMPORTID,Site,Desk,Region,RefObligor,
    SUM(NOTIONAL) OVER(PARTITION BY IMPORTID, Region,RefObligor) AS SUM_NOTIONAL
From 
    Positions
Where
    ID = :importID
Order BY 
    IMPORTID,Region,Site,Desk,RefObligor

Atau, Anda perlu membuat agregat dari Site , Desk kolom

SELECT  
    IMPORTID,Region,Min(Site) Site, Min(Desk) Desk,RefObligor,SUM(NOTIONAL) AS SUM_NOTIONAL
From 
    Positions
Where
    ID = :importID
GROUP BY 
    IMPORTID, Region,RefObligor
Order BY 
    IMPORTID, Region,Min(Site),Min(Desk),RefObligor


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membaca gumpalan baris demi baris dengan pl\sql

  2. cara menambahkan detik di stempel waktu oracle

  3. Biaya Dalam Memori Oracle

  4. buat fungsi khusus untuk perbedaan tanggal tidak termasuk akhir pekan dan hari libur di Oracle sql

  5. Fungsi JSON_ARRAYAGG() di Oracle