mysql 查询每个班的前十名的成绩 10
前十名是不是要limit10每个班又要groupby一下到底怎么写,不要用group_concat(),结果不符合规范...
前十名是不是要limit 10
每个班又要group by一下
到底怎么写,不要用group_concat(),结果不符合规范 展开
每个班又要group by一下
到底怎么写,不要用group_concat(),结果不符合规范 展开
1个回答
展开全部
答:
试运行段:
select *
from(
SELECT
obj.id,
obj.score,
CASE
WHEN @rowtotal = obj.score THEN
@rownum
WHEN @rowtotal := obj.score THEN
@rownum :=@rownum + 1
WHEN @rowtotal = 0 THEN
@rownum :=@rownum + 1
END AS rownum
FROM
(
SELECT id,name,score
from test -- 表名字
ORDER BY score DESC
)) AS obj,
(SELECT @rownum := 0 ,@rowtotal := NULL) r
) as no2
where rownum < 4
试运行段:
select *
from(
SELECT
obj.id,
obj.score,
CASE
WHEN @rowtotal = obj.score THEN
@rownum
WHEN @rowtotal := obj.score THEN
@rownum :=@rownum + 1
WHEN @rowtotal = 0 THEN
@rownum :=@rownum + 1
END AS rownum
FROM
(
SELECT id,name,score
from test -- 表名字
ORDER BY score DESC
)) AS obj,
(SELECT @rownum := 0 ,@rowtotal := NULL) r
) as no2
where rownum < 4
追问
你好,有没有相关系统点的资料,比如储存过程和这方面的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询