假设您的表格在date
列中的数据如下所示。
date1
-------------------
01.01.2016 00:00:00
01.01.2016 00:00:00
01.01.2016 00:00:00
01.01.2016 00:00:00
01.01.2017 00:00:00
01.01.2017 00:00:00
01.01.2017 00:00:00
01.01.2017 00:00:00
,并要返回billreference
1同年递增,并复位时year
变化,下面的查询可以在sql-server
一个选项。
SELECT row_number() over(partition BY datepart(yy,date1)
ORDER BY date1) AS billreference,
date1
FROM t1;
其他dbms
,ANSI标准extract(year from datecolumn)
可以用来代替datepart
结果的:
billreference date1
-----------------------------------
1 01.01.2016 00:00:00
2 01.01.2016 00:00:00
3 01.01.2016 00:00:00
4 01.01.2016 00:00:00
1 01.01.2017 00:00:00
2 01.01.2017 00:00:00
3 01.01.2017 00:00:00
4 01.01.2017 00:00:00
您可以查看演示here
哪个[DBMS] (https://en.wikipedia.org/wi ki /数据库)你在用吗? Postgres的?甲骨文? DB2?火鸟? –
分享您使用的样本数据,期望的输出和DBMS – zarruq