Mysql常见SQL查询应用场景

场景一:

  某场射击比赛,张三、李四、王五三人参加比赛。

  射击比赛规则:共进行三轮比赛;三轮比赛结束后,取最优成绩作为个人最佳成绩进行排名。

  设计数据库表:

CREATE TABLE `TEST` (
  `ID` int(11) NOT NULL,
  `NAME` varchar(45) DEFAULT NULL COMMENT '名称',
  `SCORE` int(11) DEFAULT NULL COMMENT '分数',
  `ROUND` int(11) DEFAULT NULL COMMENT '回合',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

  插入数据:
    三轮成绩下来
    张三分别是9,10,10;

    李四分别是10,9,8;

    王五分别是9,8,8;

 

  通过排序后可知,要取到的数据是ID分别为4,2,3的数据

   通过对人名进行分组,获得人名及其所创造的最好成绩

  通过表关联查询得出下面结果

  此时需要对结果进行分组并取出每组ID最小值

  对取出的ID查询并排序

 

  这就是取出同一个表每组中最优数据。

  

  如若再加一条件,当两数据最后得分相同,则平均分更高的排名靠前,都相同则按照名称排序。

  

原文地址:https://www.cnblogs.com/feiyang930112/p/11332187.html