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