Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
はじめに SQLで「あるグループごとに上位〇件ずつデータを取得して比較したい!」 という際にwindow関数を使うとサクッと抽出することが出来ます。 サンプルデータ select * from book; id | name | title | num -------+--------------+--------------------------+-------- 1 | 江戸川 乱歩 | 赤いカブトムシ | 20 2 | 江戸川 乱歩 | 宇宙怪人 | 10 ~ id | name | title | num -------+--------------+--------------------------+-------- 11 | 芥川 竜之介 | アグニの神 | 40 12 | 芥川 竜之介 | 犬と笛 | 10 21 | 小川 未明 | 赤い蝋燭と人魚 | 100 22 |
下図のように、「縦持ち」のテーブルを「横持ち」に置き換えることをピボット(pivot)、逆に「横持ち」のテーブルを「縦持ち」に置き換えることをアンピボット(unpivot)と呼びます。これらの変換を行なう方法をまとめました。 標準SQL Presto Hive Pandas (Python) 標準SQL SQL-like なクエリ言語ならどこでも使える書き方です。 Pivot SELECT uid, max(CASE WHEN key = 'c1' THEN value END) AS c1, max(CASE WHEN key = 'c2' THEN value END) AS c2, max(CASE WHEN key = 'c3' THEN value END) AS c3 FROM vtable GROUP BY uid ;
Group By X means put all those with the same value for X in the one group. Group By X, Y means put all those with the same values for both X and Y in the one group. To illustrate using an example, let's say we have the following table, to do with who is attending what subject at a university: Table: Subject_Selection +---------+----------+----------+ | Subject | Semester | Attendee | +---------+--
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く