Oracle
 sql >> база данни >  >> RDS >> Oracle

sql - ORA-00937:не е групова функция за една група

Препоръчвам 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), () );

Тоест повторението на заявката е ненужно. Също така промених сравненията на дати, за да използвам действителни дати. Намирам това за по-разбираемо и поддържано от извличането на части от датата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC:Oracle Application Server и мрежовият адаптер не можаха да установят грешка при свързване

  2. Операторът SELECT на Oracle е бавен

  3. Какво е pro *c?

  4. Незабавното изпълнение е неуспешно дори с разрешение за таблица CREATE

  5. Свържете се с база данни Oracle 10g с Microsoft ODBC за Oracle