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

 更新时间:2010年07月26日 14:08:46   作者:  
自己网站的世界杯猜想活动,整理了几个排行榜。写了半个小时的SQL,丢了多可惜,放在这里,反正是别人的地盘,不心疼。
/*增幅降幅排名*/
复制代码 代码如下:

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

相关文章

  • SQLServer EVENTDATA()函数来获取DDL 触发器信息

    SQLServer EVENTDATA()函数来获取DDL 触发器信息

    SQL Server 2005/2008中可以使用EVENTDATA函数来获取DDL触发器的上下文,从而在ROLLBACK之前截获DDL信息。EVENTDATA返回XML字段,下面的例子显示如何截获Drop Table的DDL信息。
    2009-07-07
  • SQL Server数据汇总五招轻松搞定

    SQL Server数据汇总五招轻松搞定

    有些时候你想让SQL Server 返回一个聚集结果集合,而不是一个详细的结果集。SQL Server的GROUPBY子句,为你提供了一种聚合SQL Server数据的方式。GROUPBY子句允许你在一列或多列数据甚至是表达式上进行分组操作,在这篇文章中,我将讨论如何使用GROUPBY子句来汇总数据。
    2015-09-09
  • SQL SERVER 触发器介绍

    SQL SERVER 触发器介绍

    触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。
    2013-03-03
  • 分享整理的12条sql语句连同数据

    分享整理的12条sql语句连同数据

    原本sql写得也不好,近几年数据库用得少,sql更是荒废了,最近复习sql,网上例 子很多,但都只是提供sql例子,没有配套的数据用来自己练习和调试
    2012-06-06
  • 分享一个简单的sql注入

    分享一个简单的sql注入

    所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。接下来给大家分享一个简单的sql注入,一起看看吧
    2017-07-07
  • SQL Server游标的介绍与使用

    SQL Server游标的介绍与使用

    今天小编就为大家分享一篇关于SQL Server游标的介绍与使用,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • SQLServer 附加数据库后出现只读或失败的解决方法

    SQLServer 附加数据库后出现只读或失败的解决方法

    如果你在附加SQL数据库,出现只读或失败的情况,来看下本文的解决方案吧。
    2010-03-03
  • SQL Server清除日志文件ERRORLOG和删除tempdb.mdf

    SQL Server清除日志文件ERRORLOG和删除tempdb.mdf

    数据库再使用一段时间后,日志文件会增大,特别是在磁盘容量不足的情况下,更是需要缩减,以下为缩减方法:如果可以停止 SQL Server 服务,那么可以采取更直接的方式来缩减 ERRORLOG 和 tempdb.mdf 文件的大小,
    2025-03-03
  • 将一个表中个某一列修改为自动增长的方法

    将一个表中个某一列修改为自动增长的方法

    如果表中没有数据可以使用 drop column然后再add column,如果存在一部分数据可以使用本文提供的第二种解决方法
    2014-09-09
  • 嵌入式SQL和动态SQL的具体使用

    嵌入式SQL和动态SQL的具体使用

    嵌入式SQL和动态SQL是两种在应用程序中嵌入和使用SQL语句的方法,本文主要介绍了嵌入式SQL和动态SQL的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05

最新评论