LAG関数をWHERE句と組み合わせて使用するにはどうすればよいですか?

フセム・ティモウミ

以前の利用可能な金額を表示するためにLAG関数を使用したいのですが、以前の利用可能な金額のvalue_dateが「償還」の場合、非償還タイプの最後の金額に移動し続けます

次のように、LAGをprevious_availabilityフィールドに適用する必要があることを意味します。

実行日 future_availability previous_availability 正確な日付
現在のEOD 10 ヌル 2020-12-18
償還 2 10 2020-12-19
償還 3 10 2020-12-20
償還 4 10 2020-12-22
償還 5 10 2022-01-18
利用 6 10 2022-01-19
償還 7 6 2022-03-18
成熟度を制限する 8 6 2022-07-18
償還 9 8 2025-01-01

ありがとうございました!

ルーク

(注:これはprecise_date 、質問に追加される前に投稿されました)

インデックスがある場合id

-- drop table mytable;
create table mytable (
  id integer,
  value_date varchar(20),
  future_availability integer);

insert into mytable values
(1,'Current EOD',             10),
(2,'reimbursment',            2 ),
(3,'reimbursment',            3 ),                       
(4,'reimbursment',            4 ),
(5,'reimbursment',            5 ),
(6,'utilization',             6 ),
(7,'reimbursment',            7 ),
(8,'Limit Maturity',          8 ),
(9,'reimbursment',            9 );


select 
   value_date, 
   future_availability,
   (select TOP 1 m2.future_availability 
    from mytable m2 
    where m2.id<m1.id and m2.value_date<>'reimbursment' 
    order by id desc
    ) as previous_availability
from mytable m1;

出力は次のようになります。

+ --------------- + ------------------------ + -------------------------- +
| value_date      | future_availability      | previous_availability      |
+ --------------- + ------------------------ + -------------------------- +
| Current EOD     | 10                       |                            |
| reimbursment    | 2                        | 10                         |
| reimbursment    | 3                        | 10                         |
| reimbursment    | 4                        | 10                         |
| reimbursment    | 5                        | 10                         |
| utilization     | 6                        | 10                         |
| reimbursment    | 7                        | 6                          |
| Limit Maturity  | 8                        | 6                          |
| reimbursment    | 9                        | 8                          |
+ --------------- + ------------------------ + -------------------------- +

しかし、はLAG機能を使用していません

編集:これはMSSQLに関するものであるためlimit 1削除および追加されましたTOP 1

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

INNERJOINをGROUPBY句と組み合わせて使用するにはどうすればよいですか?

分類Dev

日付とWHERE句を組み合わせるにはどうすればよいですか

分類Dev

lubridateas_datetime関数をdplyrmutateおよびcase_when関数と組み合わせて使用するにはどうすればよいですか?

分類Dev

rand関数とsplit関数を使用して特定の3要素の組み合わせを回避するにはどうすればよいですか?

分類Dev

再帰関数を別の引数と組み合わせるにはどうすればよいですか

分類Dev

Rでgrepまたはstringrと組み合わせてwhich関数を使用するにはどうすればよいですか?

分類Dev

固定の月日をSQL年関数と組み合わせるにはどうすればよいですか?

分類Dev

CTEと関数を組み合わせて、再帰的に使用するにはどうすればよいですか?

分類Dev

promiseと静的コールバックを組み合わせてRamdaPipe関数を使用するにはどうすればよいですか?

分類Dev

PLPGSQLでWITHをFORループと組み合わせて使用するにはどうすればよいですか?

分類Dev

「repeat()」css関数をAngular ngStyleディレクティブと組み合わせて使用するにはどうすればよいですか?

分類Dev

2つの関数を組み合わせて、javascriptとhtml5で希望どおりに機能させるにはどうすればよいですか?

分類Dev

R関数の引数を組み合わせるにはどうすればよいですか

分類Dev

Pythonで2つの印刷関数を組み合わせるにはどうすればよいですか?

分類Dev

PostgreSQL関数で2つのselectを組み合わせるにはどうすればよいですか?

分類Dev

SQLで、LIKE句とそのワイルドカード関数を使用して1つの条件/パラメータに組み合わせるにはどうすればよいですか?

分類Dev

itertoolsの組み合わせ関数を使用してリストのリストを作成するにはどうすればよいですか?

分類Dev

T-SQLを使用して、長さが異なる複数の親子関係を組み合わせるにはどうすればよいですか?

分類Dev

Laravelと複数のテーブルを組み合わせるにはどうすればよいですか?

分類Dev

Elixirを使用してCSS以下を組み合わせるにはどうすればよいですか?

分類Dev

これらのAJAX関数とjQuery関数を正しく組み合わせるにはどうすればよいですか?

分類Dev

列の特定の組み合わせを変更する関数を適用するにはどうすればよいですか?(purrr ::優先使用)

分類Dev

dplyrでmutateと組み合わせてminimumを使用する場合、重複を処理するにはどうすればよいですか?

分類Dev

データフレーム内の行のすべての組み合わせに関数を適用するにはどうすればよいですか?

分類Dev

Pythonで多くの関数のすべての組み合わせを作成するにはどうすればよいですか?

分類Dev

複数の* ngIfを&&演算子と組み合わせて、角度のようにするにはどうすればよいですか?

分類Dev

フォルダパスとファイル名を組み合わせる関数を作成するにはどうすればよいですか?

分類Dev

フォルダパスとファイル名を組み合わせる関数を作成するにはどうすればよいですか?

分類Dev

変数と文字列を組み合わせて新しい変数を形成するにはどうすればよいですか?

Related 関連記事

  1. 1

    INNERJOINをGROUPBY句と組み合わせて使用するにはどうすればよいですか?

  2. 2

    日付とWHERE句を組み合わせるにはどうすればよいですか

  3. 3

    lubridateas_datetime関数をdplyrmutateおよびcase_when関数と組み合わせて使用するにはどうすればよいですか?

  4. 4

    rand関数とsplit関数を使用して特定の3要素の組み合わせを回避するにはどうすればよいですか?

  5. 5

    再帰関数を別の引数と組み合わせるにはどうすればよいですか

  6. 6

    Rでgrepまたはstringrと組み合わせてwhich関数を使用するにはどうすればよいですか?

  7. 7

    固定の月日をSQL年関数と組み合わせるにはどうすればよいですか?

  8. 8

    CTEと関数を組み合わせて、再帰的に使用するにはどうすればよいですか?

  9. 9

    promiseと静的コールバックを組み合わせてRamdaPipe関数を使用するにはどうすればよいですか?

  10. 10

    PLPGSQLでWITHをFORループと組み合わせて使用するにはどうすればよいですか?

  11. 11

    「repeat()」css関数をAngular ngStyleディレクティブと組み合わせて使用するにはどうすればよいですか?

  12. 12

    2つの関数を組み合わせて、javascriptとhtml5で希望どおりに機能させるにはどうすればよいですか?

  13. 13

    R関数の引数を組み合わせるにはどうすればよいですか

  14. 14

    Pythonで2つの印刷関数を組み合わせるにはどうすればよいですか?

  15. 15

    PostgreSQL関数で2つのselectを組み合わせるにはどうすればよいですか?

  16. 16

    SQLで、LIKE句とそのワイルドカード関数を使用して1つの条件/パラメータに組み合わせるにはどうすればよいですか?

  17. 17

    itertoolsの組み合わせ関数を使用してリストのリストを作成するにはどうすればよいですか?

  18. 18

    T-SQLを使用して、長さが異なる複数の親子関係を組み合わせるにはどうすればよいですか?

  19. 19

    Laravelと複数のテーブルを組み合わせるにはどうすればよいですか?

  20. 20

    Elixirを使用してCSS以下を組み合わせるにはどうすればよいですか?

  21. 21

    これらのAJAX関数とjQuery関数を正しく組み合わせるにはどうすればよいですか?

  22. 22

    列の特定の組み合わせを変更する関数を適用するにはどうすればよいですか?(purrr ::優先使用)

  23. 23

    dplyrでmutateと組み合わせてminimumを使用する場合、重複を処理するにはどうすればよいですか?

  24. 24

    データフレーム内の行のすべての組み合わせに関数を適用するにはどうすればよいですか?

  25. 25

    Pythonで多くの関数のすべての組み合わせを作成するにはどうすればよいですか?

  26. 26

    複数の* ngIfを&&演算子と組み合わせて、角度のようにするにはどうすればよいですか?

  27. 27

    フォルダパスとファイル名を組み合わせる関数を作成するにはどうすればよいですか?

  28. 28

    フォルダパスとファイル名を組み合わせる関数を作成するにはどうすればよいですか?

  29. 29

    変数と文字列を組み合わせて新しい変数を形成するにはどうすればよいですか?

ホットタグ

アーカイブ