hadoop - hive 中的第一个()

标签 hadoop hive aggregate-functions

我有如下数据。所以我想按年份、名称和名称的第一个值进行分组。

year,name,id
2017,AAA,101
2017,AAA,102
2017,AAA,221
2018,BBB,110
2018,BBB,112
2019,CCC,501
2019,CCC,504

我想得到如下所示的输出

2017,AAA,101
2018,BBB,110
2019,CCC,501

最佳答案

对于您的数据示例,简单的 row_number 即可:

select year,name,id
  from
      (
       select year,name,id, 
              row_number() over(partition by year order by id) rn 
         from mytable
      )s
 where rn=1

关于hadoop - hive 中的第一个(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54939517/

相关文章:

sql - 如何在 “sqoop export”中使用组合键来更新记录?

hadoop - 时间戳在 hive 中不起作用

apache-spark - 当Spark从oozie调用Hive时,异常引发 “java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.metadata.HiveException”

sql - 使用 jsonb_set() 进行更新仅影响嵌套数组中的一个对象

sql - 根据数据汇总今天和前一天的数据

python - 如何使用 sqlalchemy 编写自己的聚合函数?

ubuntu - hadoop 启动错误 : datanode, tasktracker won't start and data replication error

sql - SQL中处理以 "00"开头的字符串

hadoop - MapReduceIndexerTool输出目录错误 "Cannot write parent of file"

hadoop - 作为 Map only 作业执行的 Hive 查询