Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ORACLE SQL selecione distinto não removendo duplicatas


Você não entendeu o que distinct é. Não é uma função. É um modificador em select e afeta todos colunas que estão sendo selecionadas. Então, ele está se comportando exatamente como deveria.

Se você quiser agregações por código postal e semana, essas são as duas únicas colunas que devem estar no 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)

Você provavelmente poderia incluir region_id também, supondo que cada CEP esteja em uma região.