Źle rozumiesz, co distinct
jest. To nie jest funkcja. Jest to modyfikator na select
i dotyczy wszystkich wybrane kolumny. Tak więc zachowuje się dokładnie tak, jak powinien.
Jeśli chcesz agregacje według kodu pocztowego i tygodnia, to są to jedyne dwie kolumny, które powinny znajdować się w 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)
Prawdopodobnie możesz dołączyć region_id
również zakładając, że każdy kod pocztowy znajduje się w jednym regionie.