Sql 配置单元查询:根据优先级和日期计算最大指标值

Sql 配置单元查询:根据优先级和日期计算最大指标值,sql,hive,hiveql,impala,Sql,Hive,Hiveql,Impala,我试图框定查询,但不知何故没有得到所需的结果,因此发布。我是新来的蜂巢。如果事情很简单,我会道歉 来源数据: Ik - priority - ind1 - ind2 - date 1 - A - y - n - 2009/01/01 1 - B - n - y - 2019/02/09 1 - C - null - (empty)- 2018/05/07 2 - A -

我试图框定查询,但不知何故没有得到所需的结果,因此发布。我是新来的蜂巢。如果事情很简单,我会道歉

来源数据:

Ik - priority - ind1 - ind2 - date
1 -   A -           y -       n   -    2009/01/01
1 -   B -           n -       y  -     2019/02/09
1 -   C -          null -     (empty)- 2018/05/07
2 -   A -          null -     y -      2005/02/02
2 -   B -          null -     y -      2006/05/05
2 -   C -           n -       null -   2018/01/01
问题陈述

根据优先级和日期,我们需要为每个ik填充指标值(ind1和ind2)

输出表格式

Ik,ind1,ind2

逻辑是

在这里,分组将在ik场上进行。所以对于上面的数据集,在输出中将只填充一条记录

若对于相同的ik值,优先级为A,指示符标志(ind1,ind2)为y值,则输出应填充为“y”

但如果相同的ik, 优先级为A,但指示器没有值“y”。 (可能的值为null、n、空字符串)

然后将根据日期字段(按日期排序-按ik排序的最新记录组)从B C优先级中选择最新指示器

上述数据集的输出为

Ik - ind1 - ind2
1 -    y     -   y
2 -    n    -   y
这里ind1是max(ind1)。我能推导。但无法导出ind2

您能帮我创建查询吗?

测试您的数据:

结果:

ik  ind1    ind2
1   y   y
2   n   y
对您的数据进行测试:

结果:

ik  ind1    ind2
1   y   y
2   n   y

逻辑并不清楚。请根据源数据中的列名称在描述的逻辑中命名指示器。您计算的是哪一列,为什么只有一行输出?请描述集合。你好,先生,谢谢你指出细节。我现在已经更新了问题陈述。谢谢,逻辑不清楚。请根据源数据中的列名称在描述的逻辑中命名指示器。您计算的是哪一列,为什么只有一行输出?请描述集合。你好,先生,谢谢你指出细节。我现在已经更新了问题陈述。非常感谢。