CREATE TABLE IF NOT EXISTS `teststatus` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userid` int(11) DEFAULT NULL,
`duration` varchar(45) DEFAULT NULL,
`starttime` varchar(20) DEFAULT NULL,
`endtime` varchar(20) DEFAULT NULL,
`totaltime` varchar(70) DEFAULT NULL,
`totaltime_minutes` varchar(70) DEFAULT NULL,
`totalquestions` varchar(20) DEFAULT NULL,
`correctlyanswered` int(11) DEFAULT NULL,
`status` varchar(10) DEFAULT NULL,
`totalmarks` int(11) DEFAULT NULL,
`emailid` varchar(100) DEFAULT NULL,
`requesttoken` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
)
我试图执行此查询。
SELECT d.userid, d.totaltime, d.totalmarks, d.emailid, c.ranks
FROM
(
SELECT totalmarks, @rank:=@rank+1 Ranks
FROM
(
SELECT DISTINCT totalmarks
FROM teststatus
ORDER BY totalmarks DESC
) t,
(
SELECT @rank:= 0
) r
) c
INNER JOIN teststatus d
ON c.totalmarks = d.totalmarks
ORDER BY ranks;
但它显示基于总标记的排名,但我想要基于最大分数和较少的总时间排名。
我得到的结果:
totaltime,totalmarks,ranks
150,13,1
180,12,2
110,11,3
100,11,3
105,11,3
80,11,3
120,11,3
90,11,3
140,9,4
112,8,5
145,8,5
120,7,6
157,7,6
120,6,7