Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách chọn và sắp xếp theo cột không có trong câu lệnh Groupy By SQL - Oracle

Sẽ không hợp lý khi bao gồm các cột không phải là một phần của mệnh đề GROUP BY. Hãy xem xét nếu bạn có MIN (X), MAX (Y) trong mệnh đề SELECT, thì các cột khác (không được nhóm lại) nên đến từ hàng nào?

Nếu phiên bản Oracle của bạn đủ gần đây, bạn có thể sử dụng SUM - OVER () để hiển thị SUM (được nhóm lại) so với mọi hàng dữ liệu.

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

Ngoài ra, bạn cần tạo tổng hợp từ Site , Desk cột

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. Làm thế nào để cài đặt ruby-oci8?

  2. Cú pháp kết hợp bên ngoài kiểu cũ Oracle - Tại sao lại định vị dấu (+) ở bên phải của dấu bằng trong phép nối bên ngoài bên trái?

  3. Oracle PL / SQL - Tăng ngoại lệ do người dùng xác định với SQLERRM tùy chỉnh

  4. Hibernate ánh xạ một kiểu dữ liệu boolean thành gì khi sử dụng cơ sở dữ liệu Oracle theo mặc định?

  5. Hỗ trợ Spring JDBC và tập dữ liệu lớn