Anda salah paham apa yang distinct
adalah. Ini bukan fungsi. Ini adalah pengubah di select
dan itu memengaruhi semua kolom yang sedang dipilih. Jadi, ia berperilaku sebagaimana mestinya.
Jika Anda ingin agregasi menurut kode pos dan minggu, maka hanya itu dua kolom yang harus ada di 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)
Anda mungkin dapat menyertakan region_id
juga, dengan asumsi bahwa setiap kode pos berada di satu wilayah.