如何用sql统计每个用户每个小时发的comment数量? sqlserver数据库 时间格式: 2011-03-24 19:00:39.000
发布网友
发布时间:2022-04-09 12:33
我来回答
共1个回答
热心网友
时间:2022-04-09 14:03
declare @sql nvarchar(max)
select @sql=stuff((select ','+quotename(convert(varchar,number)) from master..spt_values where type='P' and number<24 for xml path('')),1,1,'')
set @sql='select * from (select userid,datepart(hh,time)time,sum(comment)sc from tb group by userid,datepart(hh,time))t
pivot (sum(sc) for time in ('+@sql+'))a'
--select @sql
exec(@sql)追问把sum那改成count之后成功了
可以解释一下吗?刚刚接触,不是很明白
追答哦,我以为数量要叠加的
spt_values这个是master数据库的辅助表,type=p的number字段是0-2047的数字
用xml方法将24个数字拼接成1,2,3这样的列名
pivot是旋转函数,我只解释个大概,具体细节你自己再仔细研究研究吧