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"
);
结果如下:







评论(0)


暂无数据
推荐帖子
0条评论
0条评论
1条评论