热线电话:13121318867

登录
2019-03-13 阅读量: 733
SQL语句

问题描述:

id date

1 '5-1'

1 '7-20'

1 '6-2'

2 '5-4'

2 '3-2'

如何得到根据先后时间的次数:

id date cunt

1 '5-1' 1

1 '6-2' 2

1 '7-20' 3

2 '3-2' 1

2 '5-4' 2

解决方法:

基本思想如下:

对于每一行,找到表中日期小于等于该行的日期且ID与该行相同的行的数量,将该数量更新该CUNT字段。

由于不知道你的表名,我先创建了一张表并且插入了一些数据,语句如下:

CREATE TABLE TEST("ID" INTEGER,"DATE" DATE,"CUNT" INTEGER);
INSERT INTO TEST("ID","DATE") VALUES (1,'2013-01-02');
INSERT INTO TEST("ID","DATE") VALUES (1,'2013-02-02');
INSERT INTO TEST("ID","DATE") VALUES (1,'2013-03-02');
INSERT INTO TEST("ID","DATE") VALUES (2,'2013-01-03');
INSERT INTO TEST("ID","DATE") VALUES (2,'2013-02-04');

然后更新cunt:

UPDATE TEST AS T1 SET "CUNT"=(
SELECT COUNT(*) FROM TEST AS T2
WHERE T2."DATE"<=T1."DATE" AND T1."ID"=T2."ID"
);

结果如下:

9.3938
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子