如何获取按sql中的ID分组的最大行数

LaR*_*ite 3 sql sql-server select group-by filter

说我有这个表:(列:Row是基于列的计数ID)

ID  | Row  | State | 
1   | 1    | CA    |
1   | 2    | AK    |
2   | 1    | KY    |
2   | 2    | GA    |
2   | 3    | FL    |
3   | 1    | WY    |
3   | 2    | HI    |
3   | 3    | NY    |
3   | 4    | DC    |
4   | 1    | RI    |
Run Code Online (Sandbox Code Playgroud)

我想生成一个新列,RowID列在每列的列中按列编号最高.我怎么做到这一点?我一直在搞乱MAX(),GROUP BY和一些分区,但每次都会遇到不同的错误.很难正确地解决这个问题.这是我的目标输出:

ID  | Row  | State | MaxRow
1   | 1    | CA    | 2
1   | 2    | AK    | 2
2   | 1    | KY    | 3
2   | 2    | GA    | 3
2   | 3    | FL    | 3
3   | 1    | WY    | 4
3   | 2    | HI    | 4
3   | 3    | NY    | 4
3   | 4    | DC    | 4
4   | 1    | RI    | 1
Run Code Online (Sandbox Code Playgroud)

Gio*_*sos 10

使用窗口版本MAX:

SELECT ID, Row, State, MAX(Row) OVER (PARTITION BY ID) AS MaxRow
FROM mytable
Run Code Online (Sandbox Code Playgroud)

在这里演示