如何使用 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;