[英]UNION ALL subquery with JOIN generating syntax error
我正在嘗試從 3 個表中獲取數據,然后加入該結果集,如下所示:
SELECT r.region,
r.recordtype,
i.entity,
COUNT(i.requestid) AS responses
FROM (
SELECT region,
recordtype,
entity,
requestid
FROM (
SELECT region,
'a' AS recordtype,
requestid
FROM db.table1
UNION ALL
SELECT region,
'b' AS recordtype,
requestid
FROM db.table2
UNION ALL
SELECT region,
'c' AS recordtype,
requestid
FROM db.table3
) union_results
) r
RIGHT JOIN db.responses i
ON r.requestid = i.requestid
GROUP BY r.recordtype,
r.region,
i.entity
我最終要尋找的是 i.requestid 在其他三個表的聯合結果中的行的結果,然后如圖所示分組,雖然我什至不確定我是否正確使用了 RIGHT JOIN 我得到基本查詢錯誤。
要求表1(a)
requestid region
abcdef us
bcdefg eu
cdefgh eu
要求 表2(b)
requestid region
fghijk eu
rstuwx eu
jklmno eu
要求 表 3(c)
requestid region
klmnop eu
ghijkl eu
opqrst eu
回應
requestid entity
abcdef 1
rstuwx 3
ghijkl 5
opqrst 5
結果
region entity recordtype count(responses)
us 1 a 1
eu 3 b 1
eu 5 c 2
我成功地將聯合本身用作子查詢,但是當與連接配對時,我收到以下錯誤,所以我正在尋找關於我做錯了什么的指針,我現在已經失明了。 我正在使用中間表,因為最終計划是根據擴展數據在此處創建一些動態列(樣本僅代表我將在查詢工作后最終提取的一些列)。
失敗:ParseException 第 4 行:6 無法識別 joinSource 命令中 '(' 'SELECT' 'region' 附近的輸入,以 ret '64' 退出
謝謝!
這個查詢對我有用:
SELECT r.region, r.recordtype, entity, Count(responses.requestid) AS responses FROM
(SELECT region, "a" AS recordtype, requestid FROM Table1
UNION ALL SELECT region, "b", requestid FROM Table2
UNION ALL SELECT region, "c", requestid FROM Table3) AS r
RIGHT JOIN responses ON r.requestid=responses.requestid
GROUP BY recordtype, region, entity;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.