Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

sql - ORA-00937:bukan fungsi grup grup tunggal

Saya merekomendasikan 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), () );

Artinya, mengulangi kueri tidak diperlukan. Saya juga mengubah perbandingan tanggal untuk menggunakan tanggal aktual. Saya menemukan ini lebih mudah dibaca dan dipelihara daripada mengekstrak bagian tanggal.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang dimaksud dengan tabel BIN$... di tabel ALL_TAB_COLUMNS Oracle?

  2. Bagaimana cara memasukkan lebih dari 1000 nilai ke dalam klausa Oracle IN

  3. ResultSet.getString() pada kolom VARCHAR2 mengembalikan string kosong

  4. Contoh Kumpulkan Massal Oracle Menggunakan Objek Tipe Baris Kursor

  5. Buat tampilan Terwujud yang menyegarkan catatan setiap hari