你的要求很特殊。
如果用户A有3个星期,而用户B有20个星期,你真生成这样的?
用户 1星期 2星期 3星期 4星期...
A     1     1     1     NULL
B     2     2     2     2    ...
应该是这样的
用户 星期 次数
A    1    1
A    2    1
A    3    1
B    1    2
B    2    2
B    3    2
B    4    2
.
.
.
如果这样的话
应该是
select userId,f(OperationDateTime),count(*) as cnt
from table_test
group by userId,f(OperationDateTime)
order by 1,2
我现在没有sql的环境,你自己试试
上面的f(OperationDateTime)代表一个函数,sql里面应该可以取得一个日期在本年度的星期数的