Hive select 基于第二列的列,其中第二列值不同

Hive select a column based on a second column where the second column values are different

假设我们有一个包含 4 个不同列的配置单元 table,我想从其中 select 获取第一列中的那些值,同时确保第二列中的值不同。对如何操作有任何帮助或指导吗?

  ---------------------
  | C1 | C2 | C3 | C4 |
  ---------------------
  | a     1    g.   h |
  | a     1    f.   l |   
  | a     3    t.   p |  
  | b     1    r.   o |  
  | b     1    e.   q |
  | c     1    w.   w |
  | c     2    z.   p |
   -------------------

在上面的示例中,我想配置 select return ac 因为它们在 C2 的值不同。

我认为这对你有用,它会显示 C1 值,其中只有一个匹配 C1 + C2 组合

select distinct C1 from table
group by C1, C2
having count(*) = 1;

行数很少,所以您应该能够弄清楚它的作用。

据我了解您的问题,您希望 c1c2 中具有多个不同的值。

您可以按 c1 分组,并使用带有 count(distinct)having 子句来实现过滤:

select c1 
from mytable
group by c1
having count(distinct c2) > 1;