一个sql题

[复制链接]
查看11 | 回复9 | 2008-12-24 12:00:59 | 显示全部楼层 |阅读模式
test:
name date
--------------
a 20070808
a 20080909
a 20090808
b 20080909
c 20070808
c 20080909
我现在想加一列,得到这样的效果:

name date
lag
--------------
----
a 20070808
1
a 20080909
2
a 20090808
3
b 20080909
1
c 20070808 1
c 20080909 2
谢谢!!
先谢谢大家,但是请用SQL来解决,不要用分析函数!!
[ 本帖最后由 zhitler 于 2008-7-27 08:09 编辑 ]
回复

使用道具 举报

千问 | 2008-12-24 12:00:59 | 显示全部楼层
CREATE TABLE t_seq_sql(
NAMEs VARCHAR2(10),
DATEs DATE);
INSERT INTO t_seq_sql VALUES('a',to_date('20070808','yyyymmdd'));
INSERT INTO t_seq_sql VALUES('a',to_date('20080909','yyyymmdd'));
INSERT INTO t_seq_sql VALUES('a',to_date('20090808','yyyymmdd'));
INSERT INTO t_seq_sql VALUES('b',to_date('20080909','yyyymmdd'));
INSERT INTO t_seq_sql VALUES('c',to_date('20070808','yyyymmdd'));
INSERT INTO t_seq_sql VALUES('c',to_date('20080909','yyyymmdd'));
COMMIT;
SELECT * FROM t_seq_sql;
SELECT * FROM test_null;
SELECT t2.names, t2.dates, COUNT(*) AS seq
FROM t_seq_sql t1, t_seq_sql t2
WHERE t2.names = t1.names
AND t2.dates >= t1.dates
GROUP BY t2.names, t2.dates
ORDER BY 1;
回复

使用道具 举报

千问 | 2008-12-24 12:00:59 | 显示全部楼层
select name,date,row_number() over(partition by name order by date) lag
from test;
回复

使用道具 举报

千问 | 2008-12-24 12:00:59 | 显示全部楼层
原帖由 caizhuoyi 于 2008-7-26 18:23 发表
select name,date,row_number() over(partition by name order by date) lag
from test;



回复

使用道具 举报

千问 | 2008-12-24 12:00:59 | 显示全部楼层
select name,date,row_number() over(partition by name order by rownum) lag
from test;
跟2楼差不多,区别在于2楼的是分组后按date字段排序出123,我这个是分组后按自然顺序给出123
回复

使用道具 举报

千问 | 2008-12-24 12:00:59 | 显示全部楼层
晕,这么简单的问题
回复

使用道具 举报

千问 | 2008-12-24 12:00:59 | 显示全部楼层
原帖由 gthboy 于 2008-7-26 19:29 发表
select name,date,row_number() over(partition by name order by rownum) lag
from test;
跟2楼差不多,区别在于2楼的是分组后按date字段排序出123,我这个是分组后按自然顺序给出123

楼主的意思好像根据日期排序吧!


回复

使用道具 举报

千问 | 2008-12-24 12:00:59 | 显示全部楼层
row_number()over()
rank()over()
dense_rank()over()
都可以处理
回复

使用道具 举报

千问 | 2008-12-24 12:00:59 | 显示全部楼层
这文章里面针对这问题讲得比较详细http://www.blogjava.net/pengpeng ... 8/06/26/210839.html
回复

使用道具 举报

千问 | 2008-12-24 12:00:59 | 显示全部楼层
lz 亏了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行