根据列的子集过滤出重复的行

pcww981p  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(283)

我有一些数据是这样的:

ID,DateTime,Category,SubCategory
X01,2014-02-13T12:36:14,Clothes,Tshirts
X01,2014-02-13T12:37:16,Clothes,Tshirts
X01,2014-02-13T12:38:33,Shoes,Running
X02,2014-02-13T12:39:23,Shoes,Running
X02,2014-02-13T12:40:42,Books,Fiction
X02,2014-02-13T12:41:04,Books,Fiction

我想做的是像这样在时间上只保留每个数据点的一个示例(我不在乎在时间上是哪个示例):

ID,DateTime,Category,SubCategory
X01,2014-02-13T12:36:14,Clothes,Tshirts
X02,2014-02-13T12:39:23,Shoes,Running
X02,2014-02-13T12:40:42,Books,Fiction

不幸的是,根据Hive语言手册,Hive DISTINCT 表达式在整个表上工作,因此这样做不是一个选项:

SELECT DISTINCT(ID, SubCategory),
       DateTime,
       Category
FROM sometable

我怎样才能拿到上面的第二张table?提前谢谢!

uwopmtnx

uwopmtnx1#

在sql中处理此类问题的常用方法是分组方式:

select ID, category, subcategory, min(datetime) datetime
from sometable
group by ID, category, subcategory

相关问题