如何使用 hive/sql 找到所需的输出
How to find the desired output using hive/sql
我有一个table这样的
col1
col2
第一个
行
第二
一个
第一个
b
第二
行
第一个
c
第二
行
所需的输出如下:
col1
col2
col3
第一个
行
1
第二
一个
1
第一个
b
1
第二
行
2
第一个
c
2
第二
行
3
逻辑是,每当我们在 col2 中获取值“行”时,col3 将递增计数器,否则将跳过它。
请帮忙。
您需要一个指定排序的列,因为 SQL 表表示无序集。
有这么一列,就用条件聚合:
select t.*,
sum(case when col2 = 'myval' then 1 else 0 end) over (order by <ordering col>) as col3
from t;
我有一个table这样的
col1 | col2 |
---|---|
第一个 | 行 |
第二 | 一个 |
第一个 | b |
第二 | 行 |
第一个 | c |
第二 | 行 |
所需的输出如下:
col1 | col2 | col3 |
---|---|---|
第一个 | 行 | 1 |
第二 | 一个 | 1 |
第一个 | b | 1 |
第二 | 行 | 2 |
第一个 | c | 2 |
第二 | 行 | 3 |
逻辑是,每当我们在 col2 中获取值“行”时,col3 将递增计数器,否则将跳过它。 请帮忙。
您需要一个指定排序的列,因为 SQL 表表示无序集。
有这么一列,就用条件聚合:
select t.*,
sum(case when col2 = 'myval' then 1 else 0 end) over (order by <ordering col>) as col3
from t;