如下图,这是一个关于用户参加活动,每个活动会给这位用户评分的一个表:

用户1参加了A活动,评分100;

用户2参加了B活动,评分98,又参加了D活动,评分10;

用户3参加了C活动,评分99

需求:把以上四条数据按照每个用户的 总分 降序排列

SQL:

SELECT SUM(score),user_id,campaign_id FROM 表名 GROUP BY (user_id) ORDER BY SUM(score) DESC ;

结果为:

完成需求,以下是实际应用遇到的小问题:

**Dao.xml :

需要注意:因为sum()是一个函数,所以取值时要用map接收,但是 我们这个需求是要降序的,map 又是无序的,用map接收岂不是做了无用功?不用担心,在Dao里我们再封装一层:

**Dao.java :

把他用ArrayList来接收,Map做泛型,这样就不怕它的顺序变化了,顺便贴一下实现类里的取值方法:

**ServiceImpl . java :

foreach循环,但如果取sum(score)时,直接像上一行取contacts_id一样   ,转String类型运行是会报错的,需要借助Integer来做转换,这样取到的值才是正确不会报异常的。

MySQL的sum()函数的更多相关文章

  1. Mysql与Sql server,Sum函数跟Count函数

    两者均是统计类函数,都不计算NULL字段!!! 单纯计算行数的话,count的效率比sum的效率高 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下 ...

  2. MySQL 对window函数执行sum函数疑似Bug

    MySQL 对window函数执行sum函数疑似Bug 使用MySql的窗口函数统计数据时,发现一个小的问题,与大家一起探讨下. 环境配置: mysql-installer-community-8.0 ...

  3. 【MySQL】汇总数据 - avg()、count()、max()、min()、sum()函数的使用

    第12章 汇总数据 文章目录 第12章 汇总数据 1.聚集函数 1.1.AVG()函数 avg() 1.2.COUNT()函数 count() 1.3. MAX()函数 max() 1.4.MIN() ...

  4. mysql踩坑记录之limit和sum函数混合使用问题

    问题复盘本次复盘会用一个很简单的订单表作为示例. 数据准备订单表建表语句如下(这里偷懒了,使用了自增ID,实际开发中不建议使用自增ID作为订单ID) CREATE TABLE `order` ( `i ...

  5. mysql sum()函数 , 计算总和

    mysql> select * from table1; +----------+------------+-----+---------------------+ | name_new | t ...

  6. 关于SQL语句中SUM函数返回NULL的解决办法

    SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL. 但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如 ...

  7. MySQL数据库聚合函数

    +++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库聚合函数时间:2019年2月25日内容:MySQL数据库聚合函数重点:MySQL数据库聚合函 ...

  8. mysql实现开窗函数

    mysql实现开窗函数 http://blog.itpub.net/29989552/viewspace-2123077/ 学习过oracle的应该知道,oracle中的分析函数功能十分强大,包括ms ...

  9. thinkphp中的内置操作数据库与mysql中的函数汇总

    8.4.4 Model类getModelName() 获取当前Model的名称getTableName() 获取当前Model的数据表名称switchModel(type,vars=array()) ...

随机推荐

  1. LINUX服务器下用root登录ftp

    因为安全方面的原因,root用户是默认不能登录ftp服务的. 如果一定要用root登录,则: 1.删除或注释/etc/vsftpd.ftpusers中的root 2.删除或注释/etc/vsftpd. ...

  2. [HNOI2008] GT考试

    [HNOI2008] GT考试 标签 : DP 矩阵乘法 题目链接 题意 n位数中不出现一个子串的方案数. 题解 \(设dp[i][j]\)为前i位匹配到j时的合法方案数.(所谓合法,就是不能有别的匹 ...

  3. intellij idea maven 工程生成可执行的jar

    新建maven 工程 写hello world 修改pom.xml 文件 <build> <pluginManagement> <plugins> <plug ...

  4. Git环境配置+VSCode中文乱码问题

    异常处理汇总-开发工具  http://www.cnblogs.com/dunitian/p/4522988.html 1.VSCode中文乱码问题 (files.autoguessEncoding= ...

  5. 定时执行 Job - 每天5分钟玩转 Docker 容器技术(135)

    Linux 中有 cron 程序定时执行任务,Kubernetes 的 CronJob 提供了类似的功能,可以定时执行 Job.CronJob 配置文件示例如下: ① batch/v2alpha1 是 ...

  6. pro asp.net mvc 5笔记

    1.Ninject条件绑定方法When(predicate)WhenClassHas<T>()WhenInj ectedInto<T>()例: kernel.Bind<I ...

  7. Entity Framework——记录执行的命令信息

    有两种方法可以记录执行的SQl语句: 使用DbContext.Database.Log属性 实现IDbCommandInterceptor接口 一 使用DbContext.Database.Log属性 ...

  8. Python常用数据结构之heapq模块

    Python数据结构常用模块:collections.heapq.operator.itertools heapq 堆是一种特殊的树形结构,通常我们所说的堆的数据结构指的是完全二叉树,并且根节点的值小 ...

  9. Yii2-admin的详细使用教程

    Yii2-admin的详细使用教程 参考:http://www.yiichina.com/tutorial/571    http://www.kancloud.cn/curder/yii/24775 ...

  10. Mysql的锁机制与PHP文件锁处理高并发简单思路

    以购买商品举例: ① 从数据库获取库存的数量. ② 检查一下库存的数量是否充足. ③ 库存的数量减去买家购买的数量(以每个用户购买一个为例). ④ 最后完成购买. 仅仅这几行逻辑代码在并发的情况下会出 ...