如何选择配置单元中具有不同 2 列的配置单元中的所有值

Posted

技术标签:

【中文标题】如何选择配置单元中具有不同 2 列的配置单元中的所有值【英文标题】:how to select all the values in hive with distinct of 2 columns in hive 【发布时间】:2020-06-13 22:40:38 【问题描述】:

我有一个如下所示的配置单元表(总共 460 列)

 colA   colB ....... ce_id filename ......... dt
  v      j            4     gg                40
  v      j            5     gg                55
  f      r            4     gg                40
  t      y            7     yy                32
  a      e            5     ee                43

现在我需要编写一个查询,使用 ce_id 和文件名的 2 个不同的列选择所有数据

我的预期输出

 colA   colB ....... ce_id filename ......... dt
  v      j            4     gg                40
  v      j            5     gg                55
  t      y            7     yy                32
  a      e            5     ee                43

任何人都可以指导我如何选择具有 2 个不同值的所有数据

【问题讨论】:

你关心你显示哪一行吗? 【参考方案1】:

我认为row_number() 可以满足您的需求:

select t.*
from (select t.*,
             row_number() over (partition by ce_id, filename order by dt) as seqnum
      from t
     ) t
where seqnum = 1;

你没有指定你想要的行。上述公式返回具有最小值dt 的公式。 order by 控制“哪个”。

【讨论】:

以上是关于如何选择配置单元中具有不同 2 列的配置单元中的所有值的主要内容,如果未能解决你的问题,请参考以下文章

VBA-如何选择具有值的列单元格

从具有多个分区列的配置单元表中获取最新数据

在配置单元中添加具有恒定值的新列

如何将原始数据插入具有不同列序列的配置单元表中?

在配置单元中,如何获取具有键,值的子集的映射

如何在配置单元查询中应用多个计数