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

Bagaimana cara menggunakan perbedaan dan penjumlahan keduanya di Oracle?

Saya akan sangat berhati-hati dengan struktur data seperti ini. Pertama, periksa apakah semua id s memiliki tepat satu harga:

select id
from table t
group by id
having count(distinct price) > 1;

Saya pikir metode teraman adalah mengekstrak harga tertentu untuk setiap id (sebutkan maksimum) dan kemudian lakukan agregasi:

select sum(price)
from (select id, max(price) as price
      from table t
      group by id
     ) t;

Kemudian, perbaiki data Anda sehingga Anda tidak memiliki dimensi aditif yang berulang. Harus ada tabel dengan satu baris per id dan harga (atau mungkin dengan duplikat tetapi dikendalikan oleh tanggal efektif dan tanggal akhir).

Datanya kacau; Anda tidak boleh berasumsi bahwa harganya sama di semua baris untuk id yang diberikan. Anda perlu memeriksanya setiap kali menggunakan kolom, hingga Anda memperbaiki datanya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tambahkan Indikator Ordinal ke Tanggal di Oracle

  2. Bagaimana cara mendapatkan catatan secara acak dari database Oracle?

  3. PLS-00103:Menemukan simbol CREATE

  4. Metode java.sql.Clob.free() JDBC 4 dan kompatibilitas mundur

  5. ORA-01438:nilai lebih besar dari presisi yang ditentukan yang diizinkan untuk kolom ini saat memasukkan 3