配置单元sql等级高于id

p5cysglq  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(311)

我有这些数据。我想聚合它,并在聚合的数据上放置一个行号。

| ID_1  | time| ID_2 |
a,        1,    36
a,        2,    36
a,        3,    45
a,        4,    65
b,        1,    75
b,        2,    35
b,        3,    35
b,        4,    76

所需的输出将如下所示。

| ID_1  | ID_2 | Row_number |
a,        36,    1
a,        45,    2
a,        65,    3
b,        75,    1
b,        35,    2
b,        76,    3

我尝试使用以下代码:

select
ID_1, ID_2,
row_number() over (partition by ID_1, ID_2 order by time desc) as Row_number
from table1

但在以下方面:

| ID_1  | ID_2|  Row_number |
a,        36,    1
a,        36,    2
a,        45,    1
a,        65,    1
b,        75,    1
b,        35,    1
b,        35,    2
b,        76,    1

如果我在最后使用groupby,我会得到一些不在groupby中的错误。

qgzx9mmu

qgzx9mmu1#

你需要分组 ID_1,ID_2 先申请,再申请 row_number() 在它上面。

SELECT id_1,
       id_2,
       row_number()
         OVER (
           partition BY id_1
           ORDER BY time ) AS Row_number
FROM   (SELECT id_1,
               id_2,
               MAX(time) time
        FROM   table1
        GROUP  BY id_1,
                  id_2) b;

演示

相关问题