Špatně jste pochopili, co je distinct
je. Není to funkce. Je to modifikátor na select
a týká se to všech vybírají se sloupce. Takže se chová přesně tak, jak má.
Pokud chcete agregace podle PSČ a týdne, pak jsou to jediné dva sloupce, které by měly být v 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)
Pravděpodobně byste mohli uvést region_id
také za předpokladu, že každé PSČ je v jednom regionu.