Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORACLE SQL Select Distinct, das keine Duplikate entfernt

Sie verstehen falsch, was distinct ist ist. Es ist keine Funktion. Es ist ein Modifikator auf select und es betrifft alle Spalten ausgewählt werden. Es verhält sich also genau so, wie es sollte.

Wenn Sie Aggregationen nach Postleitzahl und Woche wünschen, dann sind dies die einzigen beiden Spalten, die in group by enthalten sein sollten :

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)

Sie könnten wahrscheinlich region_id einfügen auch unter der Annahme, dass jede Postleitzahl in einer Region liegt.