Oracle
 sql >> Database >  >> RDS >> Oracle

ORACLE SQL seleziona distinta non rimuovendo i duplicati

Fraintendi cosa distinct è. Non è una funzione. È un modificatore su select e riguarda tutti colonne selezionate. Quindi, si sta comportando esattamente come dovrebbe.

Se desideri aggregazioni per codice postale e settimana, queste sono le uniche due colonne che dovrebbero essere nel group by :

SELECT vo.ZIP_CODE, TO_CHAR(ca.CALENDAR_WEEK),
       -- vo.REGION_ID
        COUNT(vo.ORDER_ID),
        SUM(vo.AMOUNT)
FROM VENDOR_ORDERS vo JOIN
     CALENDAR ca
     ON TRUNC(vo.ORDER_CREATION_DATETIME) = sd.CALENDAR_DATE
WHERE vo.REGION_ID = 1
GROUP BY vo.ZIP_CODE, TO_CHAR(ca.CALENDAR_WEEK)

Probabilmente potresti includere region_id anche, supponendo che ogni codice postale sia in una regione.