ORACLE排列序号问题

现有数据表如下:日期|人员2015-01-01|A2015-01-10|A2015-01-15|A2015-02-01|B2015-02-10|B2015-02-15|B... 现有数据表如下:
日期 | 人员
2015-01-01 | A
2015-01-10 | A
2015-01-15 | A
2015-02-01 | B
2015-02-10 | B
2015-02-15 | B
2015-02-20 | B
2015-02-01 | A
2015-02-10 | A
2015-02-15 | A

现需要根据人员和日期,添加一列排序列

效果如下:
日期 | 人员 | 序号
2015-01-01 | A | 1
2015-01-10 | A | 2
2015-01-15 | A | 3
2015-02-01 | B | 1
2015-02-10 | B | 2
2015-02-15 | B | 3
2015-02-20 | B | 4
2015-02-01 | A | 1
2015-02-10 | A | 2
2015-02-15 | A | 3

请高手不吝赐教,能否用SQL来实现。谢谢!
展开
 我来答
zy0807012009
推荐于2016-07-04 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:91.4万
展开全部
这个很简单的:
如下:

CREATE TABLE TEMP_AVG_SCORE
(T_DATA DATE,
T_NAME VARCHAR2(10)
) ;

INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-01-01','YYYY-MM-DD'),'A') ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-01-10','YYYY-MM-DD'),'A') ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-01-15','YYYY-MM-DD'),'A') ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-01','YYYY-MM-DD'),'B') ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-10','YYYY-MM-DD'),'B') ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-15','YYYY-MM-DD'),'B') ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-20','YYYY-MM-DD'),'B') ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-01','YYYY-MM-DD'),'A') ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-10','YYYY-MM-DD'),'A') ;
INSERT INTO TEMP_AVG_SCORE VALUES (TO_DATE('2015-02-15','YYYY-MM-DD'),'A') ;

COMMIT;

SELECT T.T_DATA,
T.T_NAME,
ROW_NUMBER() OVER(PARTITION BY TO_CHAR(T.T_DATA, 'MM'), T.T_NAME ORDER BY T.T_DATA) RN
FROM TEMP_AVG_SCORE T ;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
作为上海悉息信息科技有限公司的工作人员,对于Excel的自动汇总功能有一定了解。在Excel中,实现自动汇总到一个表通常可以通过以下几种方式:1. **使用数据透视表**:选择需要汇总的数据范围,点击“插入”->“数据透视表”,然后根据需要... 点击进入详情页
本回答由TableDI提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式