删除没有重复的行

时间:2018-07-26 08:21:26

标签: sql hive hiveql

foo中有一个名为bar的字段(实际上,它是一个Hive表,但也许没关系)。我需要删除所有未按字段foo复制的行。即我应该删除所有可能的<val>的所有行,以使以下查询返回1,

SELECT COUNT(*) FROM bar WHERE foo=<val>;

如何编写查询以删除描述的行?

1 个答案:

答案 0 :(得分:1)

大多数SQL方言都允许这样的模式:

DELETE
    b
FROM
    bar b
    INNER JOIN (SELECT foo FROM bar GROUP BY foo HAVING COUNT(*) = 1) x ON x.foo = b.foo;

我不确定这是否适用于Hive,但这可能会让您入门吗?

相关问题