为什么此查询返回错误。我试图将表的代码加载为常量字符串,将数据的标志再次加载为常量字符串,插入时间和表的计数。我想,让我先尝试运行secelct,然后再写插入内容。
但是由于某种原因,它无法从我试图计数的表中列出列名。我需要的是两个常数值,一个日期和一个计数。也尝试通过删除groupby来引发另一个错误。
hive -e“选择” WEB“作为src_cd,” 1Hr“作为Load_Flag,from_unixtime((unix_timestamp(substr(sysDate,0,11),'dd / MMM / yyyy')),'MM / dd / yyyy')作为时间,计数(*)
从网志
其中year = 2015 and month = 04 and day = 17
按src_cd,load_flag,时间分组
;
”
好
花费时间:1.446秒
失败:SemanticException [错误10004]:行4:9无效的表别名或列引用'src_cd':(可能的列名称为:clientip,authuser,sysdate,clfrequest .........(等等)年, 月日)
最佳答案
文字上的双引号是一个问题。这是我成功测试过的简单版本:
hive -e "select 'WEB' , '1Hr' , from_unixtime((unix_timestamp(substr(sysDate, 0, 11), 'dd/MMM/yyyy')), 'MM/dd/yyyy') as time, count(*) from weblog where year=2015 and month=04 and day=17 group by 1,2 , from_unixtime((unix_timestamp(substr(sysDate, 0, 11), 'dd/MMM/yyyy')), 'MM/dd/yyyy') ; "
关于sql - 如何在配置单元中选择计数和文字值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29774038/