作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我怎样才能在 HIVE 中做这样的事情:
表 1:
ID Name Friends
1 Tom 5
表 2:
ID Name DOB
1 Jerry 10/10/1999
1 Kate Null
1 Peter 02/11/1983
1 Robert Null
1 Mitchell 09/09/2000
我想做的是:
对于表1中的每个ID,找出num个不为空的DOB,然后除以Friends
我写了一个查询:
SELECT t.ID, t.Friends, COUNT(s.DOB)/ t. Friends from Table1 t join Table2 s on (t.ID = s.ID) GROUP BY t.ID
当我这样做时,我收到错误消息,因为 FRIENDS 不是 GROUP BY Key 的一部分
我期待的答案是:3/5
最佳答案
只需将 friend 添加到您的 GROUP BY 部分:
SELECT t.ID, t.FRIENDS, COUNT(s.DOB)/ t. FRIENDS
from Table1 t
join Table2 s
on (t.ID = s.ID)
GROUP BY t.ID. t.FRIENDS
我更喜欢这样写这种查询:
SELECT t.ID, case when t.FIREND>0 then Cnt / t.FRIENDS ELSE 0 END
FROM Table t1
JOIN (Select ID, Count(*) AS Cnt from Table 1 GROUP BY Id) t2
ON t1.ID = t2.ID
关于mysql - GROUP BY 和加入 HIVE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30897665/
我是一名优秀的程序员,十分优秀!