为一组相同值分配唯一ID

时间:2014-04-18 17:37:12

标签: sql

好的,我有一组这样的信息:

2014-01 2014-1-1
2014-01 2014-1-2
2014-01 2014-1-3
2014-02 2014-2-1
2014-02 2014-2-2

我想创建另一个列,所以它看起来像这样: (顺序)

1     2014-01 2014-1-1
1     2014-01 2014-1-2
1     2014-01 2014-1-3
2     2014-02 2014-2-1
2     2014-02 2014-2-2

我尝试了排名功能,但它没有'帮助,只给我1,2,3,4,5值

1     2014-01 2014-1-1
2     2014-01 2014-1-2
3     2014-01 2014-1-3
4     2014-02 2014-2-1
5     2014-02 2014-2-2

任何人请帮忙......?谢谢

1 个答案:

答案 0 :(得分:2)

您应该显示您尝试过的查询。无论如何,您需要dense_rank()

select dense_rank() over (order by col1) , col1, col2
from table t;

如果这两个值实际上在一个列中,那么执行:

select dense_rank() over (order by left(col, 7)), col
from table t;