在配置单元中编写自定义连接查询
Write a custom join query in hive
我有两张桌子
table J:
P_ID event T_ID URL
8187 6 14690481058450526 maplestage.com
8187 6 14690481058450527 maplestage.com
Table A:
P_ID event T_ID URL
8187 7 14690481058450526 NULL
8187 7 14690481058450526 NULL
8187 7 14690481058450527 NULL
我有以下查询来计算 6 和 7 的事件:
SELECT sum(if(j.event=6,1,0)) Type1, j.P_ID, j.URL, sum(if(a.event=7,1,0)) Type2 FROM Tabel_J j LEFT outer join Table_A a on a.T_ID = j.T_ID GROUP BY j.P_ID, j.URL;
我得到的结果是这样的:
Type1 P_ID URL Type2
3 8187 maplestage.com 3
我想要得到的结果是:
Type1 P_ID URL Type2
2 8187 maplestage.com 3
有人可以帮我解决这个问题吗?
谢谢
根据您的数据,T_ID
列的重要性对我来说不是很明显。话虽如此,根据我认为你所追求的(也许我错了),这个查询可能会让你到达那里:
SELECT
SUM(IF(event=6,1,0)) Type1,
P_ID,
collect_set(URL)[0] URL,
SUM(IF(event=7,1,0)) Type2
FROM
(SELECT * FROM tabel_j UNION ALL SELECT * FROM table_a) everything
GROUP BY P_ID;
我有两张桌子
table J:
P_ID event T_ID URL
8187 6 14690481058450526 maplestage.com
8187 6 14690481058450527 maplestage.com
Table A:
P_ID event T_ID URL
8187 7 14690481058450526 NULL
8187 7 14690481058450526 NULL
8187 7 14690481058450527 NULL
我有以下查询来计算 6 和 7 的事件:
SELECT sum(if(j.event=6,1,0)) Type1, j.P_ID, j.URL, sum(if(a.event=7,1,0)) Type2 FROM Tabel_J j LEFT outer join Table_A a on a.T_ID = j.T_ID GROUP BY j.P_ID, j.URL;
我得到的结果是这样的:
Type1 P_ID URL Type2
3 8187 maplestage.com 3
我想要得到的结果是:
Type1 P_ID URL Type2
2 8187 maplestage.com 3
有人可以帮我解决这个问题吗?
谢谢
根据您的数据,T_ID
列的重要性对我来说不是很明显。话虽如此,根据我认为你所追求的(也许我错了),这个查询可能会让你到达那里:
SELECT
SUM(IF(event=6,1,0)) Type1,
P_ID,
collect_set(URL)[0] URL,
SUM(IF(event=7,1,0)) Type2
FROM
(SELECT * FROM tabel_j UNION ALL SELECT * FROM table_a) everything
GROUP BY P_ID;