代码之家  ›  专栏  ›  技术社区  ›  akuiper

选择sql server中规范化的第一行

  •  -1
  • akuiper  · 技术社区  · 7 年前

    如何选择sql server中规范化的第一行?假设我有一张桌子:

    A   B
    1   5
    1   2
    1   4
    2   7
    2   3
    2   3
    

    我希望输出为:

    A   B
    1   3       = 5 - 2 (first(B) - min(B) when A = 1)
    2   4       = 7 - 3 (first(B) - min(B) when A = 2)
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Vamsi Prabhala    7 年前

    您可以使用 first_value min somecol 应更改为指定每组顺序的列)。

    select distinct A,first_value(B) over(partition by A order by somecol)-min(B) over(partition by A)
    from tbl