新亿 2015-04-27 03:41 采纳率: 0%
浏览 1542
已结题

一个用户注册的统计的sq查询

SELECT CONVERT(CHAR(10),AddTime,120) as 注册时间, COUNT(-1) as 递增数
,(select count(-1) from UserInfo where AddTime<=U.AddTime) as 总数
FROM UserInfo as U
GROUP BY CONVERT(CHAR(10),AddTime,120),U.AddTime

order by CONVERT(CHAR(10),AddTime,120) desc

======================以上为SQL语句
表结构如下:
SELECT Id, AddTime FROM UserInfo

想要实现的为:
图片说明

但测试站上执行的为:
图片说明

测试站为SQL2008+的版本,本地为2005

所以请帮忙,看看 怎样的SQL好一些。

  • 写回答

2条回答 默认 最新

  • danielinbiti 2015-04-27 05:08
    关注

    看你的样子是想用lead或者lag类似的函数

     SELECT * FROM 
    (SELECT A.*,row_number() OVER(order by 注册时间) r  FROM UserInfo A) k
    ,(SELECT A.*,row_number() OVER(order by 注册时间) r FROM UserInfo A) B 
    WHERE k.R=B.R-1
    

    按照上面语句,下面一行和当前行的列都显示在同一行,想怎么处理都行

    评论

报告相同问题?