Postgres SQL每月用户计数,带有for循环类子句

Postgres SQL每月用户计数,带有for循环类子句,sql,Sql,我有一个用于用户注册时间的用户数据库: id, signup_time 100 2020-09-01 001 2018-01-01 .... 如何找到所有历史记录的每月现有用户?使用当月的最后一天作为截止日期,现有用户意味着如果我在7月的最后一天2020-07-31观察到,该用户已在2020-07-01之前注册,并且在2020年7月期间未注册。如果我在6月的最后一天2020-06-30观察到,该用户已经在2020-06-01之前注册 我在这里问了我的问题。似乎他们中没有一个人在统

我有一个用于用户注册时间的用户数据库:

id,  signup_time
100    2020-09-01
001    2018-01-01
....
如何找到所有历史记录的每月现有用户?使用当月的最后一天作为截止日期,现有用户意味着如果我在7月的最后一天2020-07-31观察到,该用户已在2020-07-01之前注册,并且在2020年7月期间未注册。如果我在6月的最后一天2020-06-30观察到,该用户已经在2020-06-01之前注册

我在这里问了我的问题。似乎他们中没有一个人在统计每月滚动的现有用户数。 SQL有可能实现类似于for循环的功能吗

与其他语言中的for循环类似:

observation_year_month_list = ['2020-03','2020-04','2020-05','2020-06']

 for i in observation_year_month_list:
      
     if user signup_time  < i:
        monthly_existing_user_count+1
    
    

如果您想要一个有用的答案,请提供示例数据和所需结果。
year_month  existing_user_count
2020_04     2009
2020_05     2100
2020_06     3000
....