Hive 用于过滤信用卡的配置单元功能
有人能解释一下我听不懂的代码吗Hive 用于过滤信用卡的配置单元功能,hive,Hive,有人能解释一下我听不懂的代码吗 SELECT li.user_id FROM loan_info li INNER JOIN credit_card_info cci ON li.user_id = cci.user_id WHERE CAST(cci.outstanding_balance AS double) = 0.0 AND datediff(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'), li.last_payment
SELECT li.user_id
FROM loan_info li
INNER JOIN credit_card_info cci ON li.user_id = cci.user_id
WHERE CAST(cci.outstanding_balance AS double) = 0.0
AND datediff(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'), li.last_payment_date) >= 30;
SELECT li.user_id
FROM loan_info li INNER JOIN credit_card_info cci ON li.user_id = cci.user_id
WHERE CAST(cci.outstanding_balance AS double) = 0.0
AND datediff(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'), li.last_payment_date) >= 30;
此筛选器表示上次付款在当前日期前30天或更长时间:
datediff(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'), li.last_payment_date) >= 30
最好使用current\u date
而不是这个:来自unixtime(unix\u timestamp(),'yyyy-MM-dd')
:
由于查询范围的current_date常量是固定的,所以它的效率更高。并为每行计算。另见此答案:
datediff(current_date, li.last_payment_date) >= 30