问题描述
- 一个用户注册的统计的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.AddTimeorder by CONVERT(CHAR(10),AddTime,120) desc
======================以上为SQL语句
表结构如下:
SELECT Id, AddTime FROM UserInfo测试站为SQL2008+的版本,本地为2005
所以请帮忙,看看 怎样的SQL好一些。
解决方案
看你的样子是想用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
按照上面语句,下面一行和当前行的列都显示在同一行,想怎么处理都行
解决方案二:
自己写个触发器,每次有用户注册记录插入的时候,更新你的递增
和总数列
.
时间: 2024-10-29 15:42:35