distinct—sql中的累计计数

tsm1rwdh  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(430)

我正在努力编写一个查询来获取列中值的累计不同计数。

table column:           desired column:
a                       1
b                       1
c                       1
c                       2
c                       3
a                       2
a                       3

说明: row 1 有价值 a ,前面没有带值的行 a 所以我们算了 a 一次一次 1 . row 2 有价值 b ,前面没有带值的行 b 所以我们算了 b 一次一次 1 . row 3 有价值 c ,前面没有带值的行 c 所以我们算了 c 一次一次 1 . row 4 有价值 c ,前一行有1个值 c 所以我们算了 c 两次就可以了 2 . row 5 有价值 c ,前面有2行具有值 c 所以我们算了 c 三思而后行 3 . row 6 有价值 a ,前一行有1个值 a 所以我们算了 a 两次就可以了 2 . row 7 有价值 a ,前面有2行具有值 a 所以我们算了 a 三思而后行 3 .
任何帮助都太好了!

slsn1g29

slsn1g291#

如果您的sql版本支持它,那么 ROW_NUMBER 这里有一个选项:

SELECT
    col,
    ROW_NUMBER() OVER (PARTITION BY col ORDER BY col) cn
FROM yourTable;

演示

请注意 ORDER BY 上文中使用的子句 ROW_NUMBER 是任意的,因为在列值的分区中,所有列都具有相同的值。

相关问题