[英]Count rows with non-NULL in two columns
我正在嘗試比較 SQL 中的兩組:
create table my_counts
as select count(*) as total,
count(c.cookie) as first,
count(l.cookie) as second,
count(l.cookie and c.cookie) as common
from (select distinct s.cookie from ...) c
full outer join
(select distinct s.cookie from ...) l
on c.cookie = l.cookie;
select * from my_counts;
但是,上述失敗並出現此錯誤:
失敗:
ClassCastException
org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableStringObjectInspector
無法轉換為org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector
當然(假設上面的 SQL 語句做了我認為應該做的事情),我應該有total + common = first + second
,所以common
列不是絕對必要的,但我仍然想知道是否有辦法計算行數其中兩列都是非NULL
。
AND - 是一個布爾運算符。 看起來cookie
是一個字符串,而不是布爾值。 嘗試用這個替換count(l.cookie and c.cookie)
: count(case when l.cookie is not null and c.cookie is not null then 1 else NULL end) as common
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.