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 a
和 c
因为它们在 C2 的值不同。
我认为这对你有用,它会显示 C1 值,其中只有一个匹配 C1 + C2 组合
select distinct C1 from table
group by C1, C2
having count(*) = 1;
行数很少,所以您应该能够弄清楚它的作用。
据我了解您的问题,您希望 c1
在 c2
中具有多个不同的值。
您可以按 c1
分组,并使用带有 count(distinct)
的 having
子句来实现过滤:
select c1
from mytable
group by c1
having count(distinct c2) > 1;
假设我们有一个包含 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 a
和 c
因为它们在 C2 的值不同。
我认为这对你有用,它会显示 C1 值,其中只有一个匹配 C1 + C2 组合
select distinct C1 from table
group by C1, C2
having count(*) = 1;
行数很少,所以您应该能够弄清楚它的作用。
据我了解您的问题,您希望 c1
在 c2
中具有多个不同的值。
您可以按 c1
分组,并使用带有 count(distinct)
的 having
子句来实现过滤:
select c1
from mytable
group by c1
having count(distinct c2) > 1;