【Hive】【SQL】全く関係ないテーブルを結合することを考える

■ はじめに

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