首页 / MYSQL / 当总计总值相等时,MYSQL分类
当总计总值相等时,MYSQL分类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了当总计总值相等时,MYSQL分类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2590字,纯文字阅读大概需要4分钟。
内容图文
更新:重新格式化整个问题
我有一个包含个人F1比赛结果的数据库.每个驾驶员根据他们完成的位置获得积分.现在我想建立一个包含所有赛车的所有组合点的桌子.所以基本上是一个“司机榜”表.
我当然可以很容易地得到总结点,但是当多个驾驶员具有完全相同的总分时,我遇到的问题就出现了.在这些情况下,我需要检查哪一个驱动程序具有最佳(或更多)单个竞赛结果,因为他应该在结束表上方.
哦,在放置栏上,“0”表示没有完成,所以这是最糟糕的结果.
简单的例子:
Event | Driver | Placement | Points
--------------------------------------
Race 1 | Driver A | 1 | 3
Race 1 | Driver B | 2 | 2
Race 1 | Driver C | 3 | 1
Race 2 | Driver A | 3 | 3
Race 2 | Driver B | 2 | 2
Race 2 | Driver C | 1 | 1
Race 3 | Driver A | 0 | 0
Race 3 | Driver B | 0 | 0
Race 3 | Driver C | 2 | 2
并要求完成表
Driver | Points
------------------
Driver C | 4
Driver A | 4
Driver B | 4
订单是因为Driver C有一个第一名和第二名.驾驶员A有一个第一名和第三名完成,其中驾驶员B只有第二名完成. (假设我的头很有效,那已经很晚了.)
硬例http://sqlfiddle.com/#!9/16f9c5
期望的结果
| Driver | Points |
|------------------------|
| N. Hulkenberg | 43 |
| F. Massa | 43 |
| P. Wehrlein | 5 |
| D. Kvyat | 5 |
| M. Ericsson | 0 |
| P. Gasly | 0 |
| A. Giovinazzi | 0 |
| B. Hartley | 0 |
从小提琴数据中我删除了除问题案例之外的所有内容.每个人至少和另外一个人有相同的分数,并且领带断路器从简单的比赛中的最佳表现到最佳表现的数量不等(四个第六名胜利优于第二名胜利,如Hulkenberg和Massa的情况).
结果表是因为:
1. N. Hulkenberg - has four 6th place finishes
2. F. Massa - has two 6th place finishes
3. P. Wehrlein - has 8th place finish
4. D. Kvyat - has 9th place finish
5. M. Ericsson - has 11th place finish
6. P. Gasly - has 12th and 13th place finishes
7. A. Giovinazzi - has only one 12th place finish and nothing else
8. B. Hartley - has 13th place finish
真正有问题的领带破坏者是[Hulkenberg vs Massa]和[Gasly vs Giovinazzi]
任何帮助赞赏.
解决方法:
这应该没有太多模糊的伎俩.
SELECT
driver
,SUM(points) AS points
,CONCAT(GROUP_CONCAT(IF(placement = 0, 99, LPAD(placement,2,0)) ORDER BY IF(placement = 0, 99, placement) SEPARATOR ','), ',99') AS best
FROM
f1
GROUP BY
driver
ORDER BY
points DESC,
best
或者,如果您想隐藏放置排序数据列:
SELECT
driver
,SUM(points) AS points
FROM
f1
GROUP BY
driver
ORDER BY
points DESC
,CONCAT(GROUP_CONCAT(IF(placement = 0, 99, LPAD(placement,2,0)) ORDER BY IF(placement = 0, 99, placement) SEPARATOR ','), ',99')
它只是利用字母数字排序来确定在点数相关的情况下的最佳位置.
内容总结
以上是互联网集市为您收集整理的当总计总值相等时,MYSQL分类全部内容,希望文章能够帮你解决当总计总值相等时,MYSQL分类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。