在Hive中,我有一个查询来获取产品的最短日期
SELECT min(expire_date) FROM warehouse WHERE product='Salad'
得到结果' 2017-03-04'。
我还有一个查询来获取所有产品的日期差异,并且它正在运行
SELECT product, import_date, datediff(import_date, '2017-01-01')+1, product from warehouse WHERE product='Salad';
但我想结合日期差异:
SELECT product, import_date, datediff(import_date, 'SELECT min(expire_date) FROM warehouse WHERE product=\'Salad\'')+1, from warehouse WHERE product='Salad';
我将拥有以下内容:
Salad 2017-04-23 NULL
Salad 2017-04-23 NULL
Salad 2017-04-18 NULL
为什么dateiff不能计算dateiff,任何人都有想法?感谢
答案 0 :(得分:0)
使用窗口功能:
SELECT product, import_date, datediff(import_date, min(expire_date) over (partition by salad))
FROM warehouse
WHERE product = 'Salad';
字符串不会被解释为子查询。
(如果这是你真正想要的逻辑,你可以加1。)
答案 1 :(得分:0)
这应该给出期望的结果
SELECT w.product, w.import_date, datediff(w.import_date, t.min_date)+1, from warehouse w, (SELECT min(expire_date) as min_date FROM warehouse WHERE product='Salad') t WHERE w.product='Salad';