Oracle
 sql >> база данни >  >> RDS >> Oracle

Въпрос за присъединяване към SQL

Можете да използвате комбинация от Анализ (ако използвате достатъчно скорошна версия на Oracle) и обобщена таблица, за да го направите. Това трябва да работи с вашия набор от данни.

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;

Вътрешната заявка използва анализи, за да извлече най-новите 4 rx номера за всяко лекарство въз основа на датата на искане. След това използваме въртене, за да го изведем от 4 реда за лекарство към един ред с 4 колони.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql*plus винаги връща код за изход 0?

  2. Експортирайте резултатите от заявката на Oracle в HTML файл, когато използвате SQLcl

  3. Как да промените езика за вашата сесия на Oracle

  4. oracle -- Разделете множество стойности, разделени със запетая, в таблицата на Oracle на няколко реда

  5. Вмъкнете CLOB в базата данни на Oracle