世界杯猜想活动的各类榜单的SQL语句小结

时间:2021-09-11 01:39:38

/*增幅降幅排名*/ 

复制代码代码如下:


Select top 50 UserName,sum(ReceivePrice) - sum(GuessPrice) as ReceivePrice, 
cast(sum(CASE WHEN ReceivePrice>0 THEN 1.0 ELSE 0 END) / count(ReceivePrice) * 100 as numeric(4,1)) as Rate 
From [game_FantasyLog] 
WHERE IsJudge=1 
GROUP BY UserId,UserName 
ORDER BY sum(ReceivePrice) - sum(GuessPrice) ASC 


/*正确率错误率排名*/ 

复制代码代码如下:


Select top 50 UserName,sum(ReceivePrice) - sum(GuessPrice) as ReceivePrice, 
cast(sum(CASE WHEN ReceivePrice>0 THEN 1.0 ELSE 0 END) / count(ReceivePrice) * 100 as numeric(4,1)) as Rate 
From [game_FantasyLog] 
WHERE IsJudge=1 
GROUP BY UserId,UserName Having count(UserId) >= 5 
ORDER BY cast(sum(CASE WHEN ReceivePrice>0 THEN 1.0 ELSE 0 END) / count(ReceivePrice) * 100 as numeric(4,1)) ASC 


/*大手笔排名*/ 

复制代码代码如下:


Select top 50 l.UserName,sum(l.GuessPrice),sum(l.ReceivePrice),f.title 
From [game_FantasyLog] l left join [game_fantasy] f on l.topicid = f.id 
GROUP BY l.TopicId,l.UserName,f.title 
ORDER BY sum(l.GuessPrice) DESC 


/*冷门场次排名*/ 

复制代码代码如下:


Select top 50 f.id,f.title,f.GuessPrice,(select sum(receivePrice) FROM [game_FantasyLog] l where l.topicid = f.id), 
cast((select sum(CASE WHEN ReceivePrice>0 THEN 1.0 ELSE 0 END) / f.GuessTimes FROM [game_FantasyLog] l2 where l2.topicid = f.id) as numeric(4,2)) 
From [game_Fantasy] f WHERE f.GuessPrice > 1000 
ORDER BY (select sum(receivePrice) FROM [game_FantasyLog] l where l.topicid = f.id) ASC 


/*冷门场次的命中者*/ 

复制代码代码如下:


Select top 50 UserName,sum(ReceivePrice) as ReceivePrice 
From [game_FantasyLog] where topicid=29 
GROUP BY TopicId,UserName 
ORDER BY sum(ReceivePrice) DESC