LAG OVER Snowflake SQL

【SQL】【Snowflake】LAG関数で他レコードを参照する【LAG】【OVER】

投稿日:

今回は、SQLのLAG関数で他レコードを参照する方法について解説します。


-- create or replace table1-
create or replace table DB1.PUBLIC.DATA1
(
  "id1" VARCHAR(10),
  "id2" VARCHAR(10)
);


-- プロシージャ定義
CREATE OR REPLACE PROCEDURE DB1.PUBLIC.INSERT_PROC1()

RETURNS VARCHAR
LANGUAGE SQL
AS
BEGIN

INSERT INTO DB1.PUBLIC.DATA1 VALUES ('1111', '1111');
INSERT INTO DB1.PUBLIC.DATA1 VALUES ('2222', '2222');
INSERT INTO DB1.PUBLIC.DATA1 VALUES ('3333', '3333');

END;


-- プロシージャ呼び出し
CALL DB1.PUBLIC.INSERT_PROC1();

select lag("id1",1) over(order by "id1")
from DB1.PUBLIC.DATA1;
  • LAG関数による他レコードの参照
  • lag(“id1”,1)・・・他レコードの”id1″の値を参照
  • lag(“id1”,1)・・・1レコード手前のレコードを参照
  • over(order by “id1”)・・・他レコードを参照する際に、”id1″の並び順で遡る。

-LAG, OVER, Snowflake, SQL

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【SAS】ORDER BY句無しで抽出した際の出力順【SQL】

この記事の要約:「ORDER BYを使わない場合、SQLで抽出した際の並び順は保証されない」 SQL文で抽出を行った際に、困ったことが起きました。 同じPG文なのに1回目と2回目で出力結果に違いがある …

【SAS】SQLプロシージャはSQLを実行できる。

今回はSQLプロシージャについて解説します。 /* sql_1 */ data data1; Id1=1111; Id2=1111; Id3=1111; output; Id1=2222; Id2=2 …

【SAS】DISTINCTは重複をユニークにする。【SQL】

今回はSQL文のDISTINCTについて解説します。 /* Id1 */ data data1; Id1=1111; Id2=1111; Id3=1111; Id4=1111; output; Id1 …

【SAS】SUMは足し算をする。その1【SQL】

今回はSQLのSUMについて解説します。 /* SUM_1 */ data data1; Id1=1111; Id2=1111; Id3=1111; output; Id1=2222; Id2=222 …

no image

【SQL】【Snowflake】テーブルに値を格納する方法【INSERT】

今回はSQLを使って、テーブルに値を格納する方法について解説します。 まず、カラム(列)だけ用意した空のテーブルを用意します。 (参考:【SQL】【Snowflake】テーブルの更新【CREATE O …