Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Câu hỏi tham gia SQL

Bạn có thể sử dụng kết hợp Analytics (nếu bạn đang sử dụng phiên bản Oracle đủ gần đây) và Pivot Table để thực hiện việc đó. Điều này sẽ hoạt động với tập dữ liệu của bạn.

select ndc,
       max(decode(rn, 1, rx_num, null)) rx1,
       max(decode(rn, 2, rx_num, null)) rx2,
       max(decode(rn, 3, rx_num, null)) rx3,
       max(decode(rn, 4, rx_num, null)) rx4
  from (select *
          from (select claims_list.ndc,
                       claims_list.rx_num,
                       row_number() over (partition by claims_list.ndc order by claims_list.date desc) rn
                  from claims_list,
                       (select * 
                          from (select *
                                  from drug_list
                                 where type = 'Generic'
                                order by qty desc
                               )
                         where rownum < 51
                       ) drug_list
                 where drug_list.ndc = claims_list.ndc
               )
         where rn < 5
        order by ndc, rn
       )
group by ndc;

Truy vấn bên trong sử dụng phân tích để lấy 4 số rx gần đây nhất cho mỗi loại thuốc dựa trên ngày yêu cầu. Sau đó, chúng tôi sử dụng một trục xoay để đưa nó từ 4 dòng cho mỗi loại thuốc thành một dòng có 4 cột.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm LTRIM () trong Oracle

  2. tính toán giờ dựa trên giờ làm việc trong Oracle SQL

  3. Tìm hiểu về Gói DBMS_OUTPUT trong Oracle

  4. Phân vùng động bảng Oracle

  5. PLS-00428:mệnh đề INTO được mong đợi trong câu lệnh SELECT này