25. 実際のSQL
SELECT
*
, lag("日別売上") OVER (ORDER BY "売上日")AS 前日売上
FROM
(SELECT
to_char(sum("売上"),'FM999,999,999') AS "日別売上"
, "売上日"
FROM "売上表"
GROUP BY "売上日") AS "集計"
26. 実際のSQL
SELECT
*
, lag("日別売上") OVER (ORDER BY "売上日")AS 前日売上
FROM
(SELECT
to_char(sum("売上"),'FM999,999,999') AS "日別売上"
, "売上日"
FROM "売上表"
GROUP BY "売上日") AS "集計"
27. 実際のSQL
SELECT
*
, lag("日別売上") OVER (ORDER BY "売上日")AS 前日売上
FROM
(SELECT
to_char(sum("売上"),'FM999,999,999') AS "日別売上"
, "売上日"
FROM "売上表"
GROUP BY "売上日") AS "集計"
先ほどのクエリをサブクエリにする
28. 実際のSQL
SELECT
*
, lag("日別売上") OVER (ORDER BY "売上日")AS 前日売上
FROM
(SELECT
to_char(sum("売上"),'FM999,999,999') AS "日別売上"
, "売上日"
FROM "売上表"
GROUP BY "売上日") AS "集計"
Window関数の対象を指定
先ほどのクエリをサブクエリにする
29. 実際のSQL
SELECT
*
, lag("日別売上") OVER (ORDER BY "売上日")AS 前日売上
FROM
(SELECT
to_char(sum("売上"),'FM999,999,999') AS "日別売上"
, "売上日"
FROM "売上表"
GROUP BY "売上日") AS "集計"
Window関数の対象を指定
先ほどのクエリをサブクエリにする
前行の取得するカラムを指定
87. JSON型とJSONB型
ドキュメント指向
name : hoge
role1 : 開発
role2 : 運用
age : 30
name : fuga
role1 : 営業
from : 広島
age : 25
name : bar
role1 : 総務
それぞれが独立したドキュメント
ドキュメントにはユニークなIDでアクセスが可能
89. id name properties
1 test1 { name : hoge", age :30, role :1}
2 test2 { name : fuga", age :21, role :1}
3 test3 { name : bar , age :22, role :1}
4 test4 { name : foo , age :60, role :2}
5 test5 { name :toto, age :16, role :2}
6 test6 { name : titi , age :30, role :2}
7 test7 { name : tata , age :30, role :3}
:
:
:
:
:
: