sql >> Databáze >  >> RDS >> Oracle

ORACLE SQL vybrat odlišné neodstranění duplikátů

Š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.



  1. Jak opravit „Neplatný název objektu ‚OPENJSON‘.“ v SQL Server

  2. LINQ to MySQL – jaká je nejlepší možnost?

  3. Jak mohu napsat migraci pro vkládání záznamů pomocí phinx?

  4. Jaký je vhodný datový typ pro uložení časového pásma?