zoukankan      html  css  js  c++  java
  • MySQL的sum()函数

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

    用户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来做转换,这样取到的值才是正确不会报异常的。

  • 相关阅读:
    设计模式 里氏替换原则
    java队列
    java 多线程
    设计模式-里氏替换原则
    设计模式-单一职责原则
    一、概念
    六、序列化和反序列化(对象流)
    七、随机访问文件流
    五、包装流
    四、字符输入输出流
  • 原文地址:https://www.cnblogs.com/zdd-/p/8440643.html
Copyright © 2011-2022 走看看