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

SQL bukan ekspresi GROUP BY dengan OracleSQL dan InnerQuery Error

Seperti yang Anda lihat di dokumen ORACLE

Artinya jika Anda hanya mengelompokkan berdasarkan o.CUSTOMER_ID , semua bidang lain dalam daftar pilihan harus berupa fungsi agregat (seperti COUNT, MAX, dll.).

Dalam hal bidang yang mengulang nilai di setiap grup (sebagai nama dan nama belakang), Anda harus memasukkannya ke dalam klausa GORUP BY.

Untuk memasukkan jumlah uang yang dibelanjakan, Anda dapat menambahkan KIRI GABUNG dengan PRODUK dan pilih SUM(op.amount*p.price) tanpa subkueri.

Itu akan menjadi

SELECT o.CUSTOMER_ID AS "ID", c.name AS "Name", c.SURNAME AS "Surname",
       SUM(op.AMOUNT*p.PRICE) AS "Money spent"
  FROM ORDERS o 
       LEFT JOIN CUSTOMERS c ON c.ID = o.CUSTOMER_ID 
       LEFT JOIN ORDERS_PRODUCTS op ON op.ORDER_ID = o.id
       LEFT JOIN PRODUCTS p ON p.id = op.PRODUCT_ID
 GROUP BY o.CUSTOMER_ID, c.name AS "Name", c.SURNAME
 ORDER BY o.CUSTOMER_ID, c.name AS "Name", c.SURNAME;

Ingatlah selalu untuk menentukan urutan pengurutan kueri Anda, jika tidak maka tidak akan ditentukan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara memasukkan gambar atau gambar ke dalam database oracle?

  2. Memasukkan beberapa baris ke dalam tabel - mendapatkan kesalahan ORA-00933:Perintah SQL tidak berakhir dengan benar

  3. Mendapatkan baris tambahan - Setelah bergabung dengan 3 tabel menggunakan Gabung Kiri

  4. Mengapa kami tidak dapat menjalankan prosedur tersimpan dalam pernyataan pilih di Oracle? apakah ada alasan yang kuat?

  5. klausa SELECT dengan tabel bergabung sendiri