Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wybrać i uporządkować według kolumn, których nie ma w instrukcji Groupy By SQL — Oracle

Nie ma sensu dołączanie kolumn, które nie są częścią klauzuli GROUP BY. Zastanów się, czy masz MIN(X), MAX(Y) w klauzuli SELECT, z którego wiersza powinny pochodzić inne kolumny (niezgrupowane)?

Jeśli twoja wersja Oracle jest wystarczająco aktualna, możesz użyć SUM - OVER(), aby wyświetlić SUM (pogrupowane) w każdym wierszu danych.

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

Alternatywnie, musisz utworzyć agregację z Site , Desk kolumny

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. Jak wyświetlić wszystkie uprawnienia użytkownika w Oracle?

  2. Ważna data sprawdzania w Oracle

  3. SIGN() Funkcja w Oracle

  4. Jak zmapować ciąg do sekwencji DB w Hibernate?

  5. Wielkie litery w nazwiskach osób w programowaniu