SQL SERVER - 如果值存在,则更改列值

时间:2014-01-02 18:33:52

标签: sql sql-server select view sql-update

我有以下问题。 想象一下,我从select语句中获得以下返回表

Column A   Column B
100        aaa
100        bbb
100        ccc
200        ddd
300        eee

所以问题是,如何更改我的SQL Select语句以添加一个新列,该列显示列A具有重复值的次数。问题是我需要获得订单的一些子项目。

例如,它应该返回类似的内容:

  Column A   Column B  Column C
    100        aaa     1
    100        bbb     2
    100        ccc     3
    200        ddd     1
    300        eee     1

非常感谢您的支持!

2 个答案:

答案 0 :(得分:2)

添加ROW_NUMBER() OVER (PARTITION BY ColA ORDER BY SomethingElse) as ColC。这为您提供了ColA中每个“组”的连续行号。

答案 1 :(得分:2)

这是分析RANK()函数的经典用例:

SELECT a, b, RANK() OVER (PARTITION BY a ORDER BY b) AS c
FROM   my_table