蜂巢:查询未显示结果

时间:2019-06-02 11:23:24

标签: datetime hive hive-query

我正在此表上写一个查询,以获取所有目录的大小总和,按日期分组,其中日期为昨天。以下查询没有任何输出。

test.id        test.path           test.size     test.date
1   this/is/the/path1/fil.txt      232.24           2019-06-01
2   this/is/the/path2/test.txt     324.0            2016-06-01
3   this/is/the/path3/index.txt    12.3             2017-05-01
4   this/is/the/path4/test2.txt    134.0            2019-03-23
5   this/is/the/path1/files.json   2.23             2018-07-23
6   this/is/the/path1/code.java    1.34             2014-03-23
7   this/is/the/path2/data.csv     23.42            2016-06-23
8   this/is/the/path3/test.html    1.33             2018-09-23
9   this/is/the/path4/prog.js      6.356            2019-06-23
4   this/is/the/path4/test2.txt    134.0            2019-04-23

SELECT regexp_replace(path,'[^/]+$',''), sum(cast(size as decimal)) 
from test WHERE date > date_sub(current_date, 1) GROUP BY path,size;

2 个答案:

答案 0 :(得分:2)

您不能date,只能group by size
另外,由于您只需要昨天的行,为什么要使用regexp_replace(path,'[^/]+$','')
您可以通过WHERE date > '2019%获取昨天的日期:

date_sub(current_date, 1)

答案 1 :(得分:0)

您可能想要package com.example.android.testting; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } 。在匹配的字符串中使用WHERE date >= '2019-01-01',例如您的%,仅适用于LIKE,不适用于不等式匹配。

您提供的示例看起来像是希望日历2019年中的所有行。

想要昨天,

2019%

即使您的 WHERE date >= DATE_SUB(current_date, -1) AND date < current_date 列中包含时间戳,此方法也有效。