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

Truy vấn để có được bản ghi gần đây nhất và (trong trường hợp quan hệ) với giá trị hoặc tỷ lệ phần trăm cao hơn theo thẻ và dịch vụ

Bạn chưa đề cập đến việc cột type thay đổi cho một card,service nhất định đôi. Giả sử nó giống nhau, bạn sẽ có thể nhận được kết quả bằng select lồng nhau , bao gồm type trong select bên trong và nhóm group by .

 SELECT card
    ,service
    ,CASE 
        WHEN type = 'v'
            THEN value
        ELSE perc
        END AS max_result
FROM (
    SELECT card
        ,service
        ,type
        ,MAX(date_t) AS Date_t
        ,MAX(value) KEEP (
            DENSE_RANK FIRST ORDER BY date_t DESC
            ) AS value
        ,MAX(percentage) KEEP (
            DENSE_RANK FIRST ORDER BY date_t DESC
            ) AS perc
    FROM yourtable
    GROUP BY card
        ,service
        ,type
    );

Demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xử lý ngoại lệ thủ tục lồng nhau Pl / SQL

  2. Có cách nào để lấy số hàng trong Mysql giống như rownum trong oracle không

  3. Cách đọc và lưu trữ dữ liệu XML trong cơ sở dữ liệu

  4. Kết xuất nhập nhà phát triển PL / SQL

  5. Kết nối và xử lý dữ liệu tiên tri từ Objective-C trên Mac OS