22,209
社区成员
发帖
与我相关
我的任务
分享
INSERT INTO test (nouse)
select count(1) from userview a join master..spt_values b on b.type='p' and a.user_id=b.number
where user_id<2001 time_stamp > '2016-10-10 00:00:00' AND time_stamp < '2016-10-31 00:00:00'
group by user_id
select count(1) from userview a join master..spt_values b on b.type='p' and a.user_id=b.number
where time_stamp > '2016-10-10 00:00:00' AND time_stamp < '2016-10-31 00:00:00'
group by user_id
INSERT INTO Test
( nouse
)
SELECT TOP 2001
COUNT(*)
FROM userview
WHERE time_stamp > '2016-10-10 00:00:00'
AND time_stamp < '2016-10-31 00:00:00'
GROUP BY USER_ID
ORDER BY user_id;
DROP PROCEDURE if EXISTS pro;
go
CREATE PROCEDURE `pro`()
BEGIN
DECLARE i INT;
SET i = 1;
WHILE i < 2001 DO
INSERT INTO test (nouse)
values(0)
SET i = i + 1;
END WHILE;
update a set a.nouse=b.nouse
from test a
inner join(select user_id,count(*) as nouse
from userview
where user_id <2001 and time_stamp > '2016-10-10 00:00:00' and time_stamp < '2016-10-31 00:00:00'
group by user_id
) b on b.user_id=a.user_id
END;
go
如果test表没有user_id字段对应,只是保持count()的结果,可以这样即可:
DROP PROCEDURE if EXISTS pro;
go
CREATE PROCEDURE `pro`()
BEGIN
INSERT INTO test (nouse)
select count(*) as nouse
from userview
where user_id <2001 and time_stamp > '2016-10-10 00:00:00' and time_stamp < '2016-10-31 00:00:00'
group by user_id
END;
go