Oracle,根据其他字段插入相关数字

el_*_*ick 1 sql oracle select correlation

对不起我的英语不好:

我的查询select date from mytable返回如下内容:

DATE

27/09/2011
27/09/2011
27/09/2011
27/09/2011
28/09/2011
28/09/2011
29/09/2011
29/09/2011
29/09/2011
Run Code Online (Sandbox Code Playgroud)

我还需要我的查询根据每个不同的日期返回相关性.就像是...

DATE         | CORRELATIVE
             |
27/09/2011   | 1
27/09/2011   | 2
27/09/2011   | 3
27/09/2011   | 4
28/09/2011   | 1
28/09/2011   | 2
29/09/2011   | 1
29/09/2011   | 2
29/09/2011   | 3
Run Code Online (Sandbox Code Playgroud)

我需要帮助才能得到它,就像select date, any_way_to_get_it from mytable thk 一样!

Ste*_*age 5

这是你应该使用的功能.

SELECT date, ROW_NUMBER()
   OVER (PARTITION BY date ORDER BY date) AS any_way_to_get_it 
   FROM mytable;
Run Code Online (Sandbox Code Playgroud)

  • 听起来不必要,你需要在`over`子句中使用`order by`来避免`ORA-30485:在窗口规范中缺少ORDER BY表达式`. (3认同)