有这样的人的名单:
name date_of_birth
john 1987-09-08
maria 1987-09-08
samuel 1987-09-09
claire 1987-09-10
jane 1987-09-10
rose 1987-09-12
...
如何使用sql获取截至该日期有多少人出生的结果视图,如该表的输出应为:
date count
1987-09-08 2
1987-09-09 3
1987-09-10 5
1987-09-11 5
1987-09-12 6
...
谢谢!
3条答案
按热度按时间tkclm6bt1#
除了戈登的答案,还有另一种方法。它使用连接:
注意:我遗漏了一个步骤。显然,你还想报告错过的日期。如果是这样,那么你可以替换我的别名
t1
有一张日历桌。为了演示,您可以内联所有日期:演示
实际上,您的日历表将是一个真正的表,它只包含您希望显示在结果集中的所有日期。
ufj5ltwl2#
一种方法是相关子查询:
这不是特别有效。如果您的数据有任何大小,则变量更好(如果您使用的是mysql 8.0,则使用窗口函数):
piok6c0g3#
使用
subquery
采用相关法: