我有一个表格,如下所示,列出了人们及其出生和死亡年份(9999 表示一个活着的人)。
person | born | died
1 | 2001 | 9999
2 | 2002 | 2003
3 | 2002 | 2008
4 | 2004 | 2009
5 | 2005 | 9999
6 | 2010 | 2012
我想计算多年来的人口。对于上面显示的示例,输出将如下所示。行末的活着的人列表仅用于演示目的,我的输出中不需要它。
year | population
2001 | 1 (1)
2002 | 3 (1,2,3)
2003 | 2 (1,3)
2004 | 3 (1,3,4)
2005 | 4 (1,3,4,5)
2006 | 4 (1,3,4,5)
2007 | 4 (1,3,4,5)
2008 | 3 (1,4,5)
2009 | 2 (1,5)
2010 | 3 (1,5,6)
2011 | 3 (1,5,6)
2012 | 2 (1,5)
我能够编写一个 C# 程序并循环遍历原始表中的每一行,并增加出生年份和死亡年份之间的每一年的人口计数。但是,我需要完全在 TSQL 脚本中完成。我是 TSQL 新手。我该怎么做?如果已经讨论过类似的问题,请指出我。谢谢你。