首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qliksense中的SQL查询

Qliksense中的SQL查询
EN

Stack Overflow用户
提问于 2021-05-27 15:47:48
回答 1查看 276关注 0票数 0

我有以下查询

SQL

代码语言:javascript
复制
SELECT * from HIVE.`abc`.`def`
    WHERE concat(cast(`year` as String),'-',lpad(`month`, 2,0),'-',lpad(`day`, 2,0)) IN
     (select max(concat(cast(`year` as String),'-',lpad(`month`, 2,0),'-',lpad(`day`, 2,0))) 
     from HIVE.`abc`.`def`);

我想把这个查询分成两部分,然后执行它。我在Hue中签了这个,查询会抛出一个错误。但如果我把这个问题抛到脑后,它的工作就像,

代码语言:javascript
复制
select max(concat(cast(`year` as String),'-',lpad(`month`, 2,0),'-',lpad(`day`, 2,0))) 
 from HIVE.`abc`.`def` ;

这将返回2020-04-19

现在

代码语言:javascript
复制
 SQL SELECT * from HIVE.`abc`.`def`
WHERE concat(cast(`year` as String),'-',lpad(`month`, 2,0),'-',lpad(`day`, 2,0)) IN '2020-04-19';

这个很好用。但是我想在WHERE子句中使用变量或别名。我想运行这个查询,以便每天查找最新的分区。

我在Qliksense编辑器中工作。我正在从蜂巢数据库中获取数据。

EN

回答 1

Stack Overflow用户

发布于 2021-05-27 16:30:54

可以使用内部联接重写SQL。有时蜂巢不支持内部条款。

代码语言:javascript
复制
SELECT * from HIVE.`abc`.`def`
JOIN 
(select max(concat(cast(`year` as String),'-',lpad(`month`, 2,0),'-',lpad(`day`, 2,0))) maxdt from HIVE.`abc`.`def`) rs 
ON concat(cast(`year` as String),'-',lpad(`month`, 2,0),'-',lpad(`day`, 2,0)) =rs.maxdt
;

我在我的蜂箱里测试过它的工作。请注意,我使用了所有的数据类型作为int。

交替SQL

代码语言:javascript
复制
SELECT * from t
JOIN 
(select max(from_unixtime(unix_timestamp(concat(cast(`year` as String),lpad(`month`, 2,0),lpad(`day`, 2,0)) ,'yyyyMMdd'))) maxdt from t) rs 
ON from_unixtime(unix_timestamp(concat(cast(`year` as String),lpad(`month`, 2,0),lpad(`day`, 2,0)) ,'yyyyMMdd')) =rs.maxdt
;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67725661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档