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.