gpt4 book ai didi

php - Mysql按分数列出一组行

转载 作者:行者123 更新时间:2023-11-29 01:56:12 24 4
gpt4 key购买 nike

我正在寻找 MySQL 语句来实现它。有什么帮助吗?

INSERT INTO exam    (`id`, `Names`, `Score`)
VALUES
(1, 'Ahmed', 55), (2, 'Jacob', 90),(3, 'Rose', 55),
(4, 'Habib', 90), (5, 'Suhaib', 70), (6, 'Sahil', 70),
(7, 'Gawai', 55), (8, 'John', 55),(9, 'Pawel', 55),
(10, 'Bannaga', 70) ;

我想要这样的结果:

   Who Scored 90 :
+-------------------+
| Sl | id | names |
+----+----+---------+
| 1. | 2 | Jacob
+----+----+---------
| 2 | 4 | Habib
+----+----+---------

对于 70 和 55 分也是类似的...

最佳答案

您可以使用带有ORDER BY 的简单SELECT 查询:

SELECT id,Name,Score
FROM exam
ORDER BY Score DESC

SQL Fiddle 中查看结果.

更好的解决方案:

SELECT Score,GROUP_CONCAT(id) as ids, GROUP_CONCAT(Names) as Names
FROM exam
GROUP BY Score
ORDER BY Score DESC

结果是这样的:

SCORE   IDS         NAMES
90 2,4 Jacob,Habib
70 10,6,5 Bannaga,Sahil,Suhaib
55 3,7,8,9,1 Rose,Gawai,John,Pawel,Ahmed

SQL Fiddle 中查看结果.

编辑:

对于更新后的问题,您可以这样做:

SET @row_number:=0;
SELECT @row_number:=@row_number+1 AS Sl_No,id,Names,Score
FROM exam
ORDER BY Score DESC, id ASC;

结果:

SL_NO   ID  NAMES   SCORE
1 2 Jacob 90
2 4 Habib 90
3 10 Bannaga 70
4 6 Sahil 70
5 5 Suhaib 70
6 3 Rose 55
7 7 Gawai 55
8 8 John 55
9 9 Pawel 55
10 1 Ahmed 55

SQL Fiddle 中查看结果.

关于php - Mysql按分数列出一组行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28199145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com