在配置单元中编写自定义连接查询

时间:2015-01-22 15:40:28

标签: sql join hive union

我有两张桌子

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

请有人帮我这个。

由于

1 个答案:

答案 0 :(得分:1)

根据您的数据,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;