需要在mysql中准备ranklist

需要在mysql中准备ranklist,mysql,select,Mysql,Select,我有一张桌子,上面有一个学生的所有细节。我已经为同样的问题准备了一个ranklist程序。 例如: SELECT name, total_marks, @curRank := IF(@prevVal=total_marks, @curRank, @curRank+1) AS rank, @prevVal:=total_marks FROM marks, ( SELECT @curRank :=0, @prevVal:=null, @n:=1 ) r ORDER BY total_marks DE

我有一张桌子,上面有一个学生的所有细节。我已经为同样的问题准备了一个ranklist程序。 例如:

SELECT name, total_marks, @curRank := IF(@prevVal=total_marks, @curRank, @curRank+1) AS rank,
@prevVal:=total_marks
FROM marks, (
SELECT @curRank :=0, @prevVal:=null, @n:=1
) r
ORDER BY total_marks DESC ;

在这一声明中。我需要检查是否有学生有相同的等级。如果是这样的话,那么我必须检查一个特定的主题标记,并对其进行相应的排序。

我想你可以这样做-

SELECT rank, GROUP_CONCAT(name) FROM (
  -- your query goes here
  ...
  ...
  ...
) t
GROUP BY rank

用户abc和abcdef具有相同的等级(1,2,3)。
用户定义有不同的等级(1,2)。

如果我无法获得正确的结果集,请指定相同的等级。OK,请为您的表提供CREATE TABLE和一些INSERT语句以测试查询。CREATE TABLE marks(名称varchar(20)、z int(10)、y int(10)、TOTALL_marks int(10)、rank int(10))这是表insert语句插入到标记(名称、z、y、总标记、秩)值('abc',100,50150',);,在标记(名称、z、y、总分、等级)中插入值('def',100,50150',);检查答案。这就是你需要的吗?我想知道你的分数表包含一个学生的一个条目,或者每个学生有多个条目。
CREATE TABLE marks(
  name VARCHAR(20),
  z INT(10),
  y INT(10),
  total_marks INT(10),
  rank INT(10)
);

INSERT INTO marks (name, z, y, total_marks, rank) VALUES ('abc', 100, 50, 150, 1);
INSERT INTO marks (name, z, y, total_marks, rank) VALUES ('abc', 100, 50, 150, 2);
INSERT INTO marks (name, z, y, total_marks, rank) VALUES ('abc', 100, 50, 150, 3);

INSERT INTO marks (name, z, y, total_marks, rank) VALUES ('def', 100, 50, 150, 1); 
INSERT INTO marks (name, z, y, total_marks, rank) VALUES ('def', 100, 50, 150, 2); 

INSERT INTO marks (name, z, y, total_marks, rank) VALUES ('abcdef', 100, 50, 150, 1);
INSERT INTO marks (name, z, y, total_marks, rank) VALUES ('abcdef', 100, 50, 150, 2);
INSERT INTO marks (name, z, y, total_marks, rank) VALUES ('abcdef', 100, 50, 150, 3);


SELECT rank, GROUP_CONCAT(name) FROM (
  SELECT name, MAX(rank) rank FROM marks GROUP BY name) t
GROUP BY rank;

+------+--------------------+
| rank | GROUP_CONCAT(name) |
+------+--------------------+
|    2 | def                |
|    3 | abc,abcdef         |
+------+--------------------+