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

sql - ORA-00937:není skupinová funkce s jednou skupinou

Doporučuji grouping sets :

select coalesce(location, 'Total') as location,
       coalesce(home_team_name, 'Total') as home_team_name,
       sum(case when match_date >= date '2018-01-01' and 
                     match_date < date '2018-02-01'
                then 1 else 0
           end) as january_2018,
       sum(case when match_date >= date '2018-02-01' and 
                     match_date < date '2018-03-01'
                then 1 else 0
           end) as february_2018,
       sum(case when match_date >= date '2018-03-01' and 
                     match_date < date '2018-04-01'
                then 1 else 0
           end) as march_2018,
       sum(case when match_date >= date '2018-01-01' and 
                     match_date < date '2019-01-01'
               then 1 else 0
           end) as total_2018
from match_results
group by grouping sets ( (location, home_team_name), () );

To znamená, že opakování dotazu je zbytečné. Také jsem změnil porovnání dat tak, aby používala skutečná data. Považuji to za čitelnější a udržitelnější než extrahování částí data.



  1. Znát vztahy mezi všemi tabulkami databáze v SQL Server

  2. Jak provést synchronizaci s místní databází a analyzovat?

  3. PostGIS v akci

  4. Vyberte každý měsíc mezi počátečním a koncovým datem