■ はじめに
Hive と Redshift で カウントなどの集計情報するのに 全く関係ないテーブルを結合したので、 そのことについて、メモっておく。 (もっといい方法があれば、随時、更新していく)
目次
【1】結合方法 方法1:JOINを使った結合 【2】サンプル 例1:「方法1:JOINを使った結合」
【1】結合方法
方法1:JOINを使った結合
[1] ダミーのJOINキー(下の「イメージ」でいうと「1 AS join_key」) を使って、無理やり結合する [2] 結合したものに対して、欲しい情報をSELECTでピックアップ => Hive/Redshift どちらでもとりあえず動作した
イメージ
-- [2] SELECT t1.<item1>, t2.<item1>, t1.<item2>, t2.<item2>, ... FROM -- [1] (SELECT <item1>, <item2>, ... 1 AS join_key FROM <table1>) AS t1 JOIN (SELECT <item1>, <item2>, ... 1 AS join_key FROM <table2>) AS t2 ON t1.join_key=t2.join_key
【2】サンプル
例1:「方法1:JOINを使った結合」
SELECT t1.counts AS person_count, t2.counts AS user_count FROM (SELECT COUNT(1) AS counts, 1 AS join_key FROM person) AS t1 JOIN (SELECT COUNT(1) AS counts, 1 AS join_key FROM user) AS t2 ON t1.join_key=t2.join_key
関連記事
Hive / HiveQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/11/25/235219
Hive / HiveQL ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/06/02/183823
Hive / HiveQL ~ JOIN文 ~
https://dk521123.hatenablog.com/entry/2021/06/16/152019
テーブルの結合 ~ 外部結合・LEFT/RIGHT/FULL JOIN ~
https://dk521123.hatenablog.com/entry/2012/05/06/212246
テーブル結合 ~ 交差結合・CROSS JOIN ~
https://dk521123.hatenablog.com/entry/2011/12/21/000000
テーブルの結合 ~完全結合・Union / Union All ~
https://dk521123.hatenablog.com/entry/2010/03/28/162247