sql >> データベース >  >> RDS >> Oracle

顧客別および月別の最新の値の行

    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. 外部キー制約を信頼する方法は?

    2. java-スタンドアロンアプリケーションのデータソース-アプリケーションサーバーなし

    3. MySqlUTFエンコーディング

    4. ストアドプロシージャの使用:mysqli-> query(CALL select_procedure)とmysqli-> query(SELECT ...)の結果が異なります。