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

Persentase SQL Oracle

Saya sarankan menghitung persentase berjalan menggunakan fungsi jendela dan kemudian membandingkan hasilnya dengan 80.

Dalam contoh kode kecil ini saya telah menunjukkan cara melakukannya berdasarkan hasil kueri Anda yang ditempatkan ke dalam blok CTE yang disebut your_data . Itu hanya menunjukkan idenya.

with 
    your_data (category, percentage) as(
        -- sample data based on your example
        select 1, 32 from dual union
        select 2, 20 from dual union
        select 3, 20 from dual union
        select 4, 10 from dual union
        select 5, 18 from dual
    ),
    t as (
        select  your_data.*,
                -- running sum calculation
                sum(percentage) over (order by category) pctg_running
          from  your_data 
    )
select * 
  from t
 where pctg_running <= 80

Sebenarnya itu mengembalikan 3 baris dan Anda mengatakan Anda mengharapkan 4 baris ditampilkan. Untuk menambahkan baris di mana persentase berjalan pertama melebihi batas Anda (80), Anda dapat mengekstrak persentase kategori saat ini dari nilai berjalan, yaitu ganti sum(percentage) over (order by category) dengan sum(percentage) over (order by category) - percentage .

HTH




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengunggah file oracle dump ke database oracle:AWS RDS

  2. Bagaimana cara saya mencatat/melacak panggilan prosedur tersimpan Oracle dengan nilai parameter?

  3. Mendapatkan Hari Terakhir Bulan Sebelumnya di Fungsi Oracle

  4. Ubah VARCHAR2 menjadi Angka

  5. SQL Query untuk mengonversi ekspresi cron ke format tanggal/waktu