zoukankan      html  css  js  c++  java
  • Mysql 分组查询最高分

    今天告诉我要写一个服务,目的是按照每个班中各分组中竞赛最高分组平分小组得分给各个成员的服务,于是就有两个技术需求

    1 查询每个班的冠军团队   

    2 增加一组人的分数

    从“1”中,查出每个班N个分组中的得分冠军团队,然后根据这个团队小组人数,把团队得分平均分成N份,用方法“2”更新该组人的分数。

    上查询代码!

    1 有可能有更好的方法,我在网上参考了这篇文章,

    http://www.jb51.net/article/31590.htm

    选择了方法4中的 Inner JOIN,当然有一个班中两组平分儿和分数除以人数不为整数的情况产生,这里都不考虑程序中的逻辑处理,只考实现查询需要的原始信息。

    1 -- 查询每个班的冠军团队   
    2  SELECT a.* 
    3  FROM t_mfg_ClassGameGroup a INNER JOIN (
    4         SELECT f_ClassId , MAX(f_Score) Score 
    5         FROM t_mfg_ClassGameGroup GROUP BY f_ClassId) b 
    6         ON a.f_ClassId = b.f_ClassId AND a.f_Score = b.Score 
    7  ORDER BY a.f_ClassId 

    查询结果

    2 数据都是模拟的

    -- 增加一组人的分
    UPDATE t_mfg_Student SET f_Score = f_Score + 10 
    WHERE f_uid IN (SELECT f_UID FROM t_mfg_UserGroup WHERE    f_groupId = 2)

    用这两个工具语句就可以实现更新了

  • 相关阅读:
    《UIP在NIOS上的移植》
    切勿使用:指向局部变量的指针作为函数的返回指针!
    Oeacle创建表空间
    Oracle SQL 语言分类
    线程整理
    输入输出
    异常处理
    哈希算法
    java链表
    课上重点整理
  • 原文地址:https://www.cnblogs.com/JonathanEvents/p/4677264.html
Copyright © 2011-2022 走看看