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

Baris dengan nilai terbaru menurut pelanggan dan bulan

SELECT YEAR
      ,MONTH
      ,customer_id
      ,max(ACCOUNT_TYPE) keep(dense_rank FIRST ORDER BY date_changed DESC) LAST_ACC
 FROM (
  SELECT EXTRACT(YEAR FROM DATE_CHANGED) AS YEAR,
         EXTRACT(MONTH FROM DATE_CHANGED) AS MONTH,
         CUSTOMER_ID,
         date_changed,
         account_type
   FROM HISTORY
  )
GROUP BY YEAR, MONTH, customer_id
ORDER BY YEAR, MONTH, CUSTOMER_ID


| YEAR | MONTH | CUSTOMER_ID | LAST_ACC |
-----------------------------------------
| 2013 |     1 |         200 |  Premium |
| 2013 |     2 |         300 |     Free |
| 2013 |     3 |         100 |  Premium |
| 2013 |     3 |         200 | Standard |

http://sqlfiddle.com/#!4/e493a/15



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Agregat Oracle untuk menggabungkan string dengan koma, dan tentang menulis agregat khusus

  2. Masukkan jika tidak ada Oracle

  3. Kode untuk memanggil fungsi dalam paket dari C# dan ODP.NET

  4. cx_Oracle dan Penanganan Pengecualian - Praktik yang baik?

  5. KURANG DARI ATAU SAMA DENGAN DI Oracle SQL