mysql如何查询各年的前10条记录

需要的是各个年的前十条记录,不是前十条记录,表结构为year,energy,company。。。。,求解... 需要的是各个年的前十条记录,不是前十条记录,表结构为year,energy,company。。。。,求解 展开
 我来答
6rl
2013-08-20 · TA获得超过704个赞
知道小有建树答主
回答量:580
采纳率:66%
帮助的人:375万
展开全部
select * from (
select
tablename_tmp.*,
@rownum:=@rownum+1 ,
if(@pyear=tablename_tmp.year,@rank:=@rank+1,@rank:=1) as rank,
@pyear:=tablename_tmp.year 
from (
select * from tablename order by year asc
)
tablename_tmp ,
(select @rownum :=0 , @pyear := null ,@rank:=0) a
)
result where rank <=10
;

 你这里其他条件判断是前十条记录吗?上面是每年各取十条。

霜_河
2013-08-20 · TA获得超过479个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:213万
展开全部
SELECT id,year,energy,company FROM 表名 a
WHERE 10 > (SELECT COUNT(*) FROM 表名 b WHERE id>a.id AND year=a.year)
ORDER BY a.year
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
millerrch
2013-08-20 · TA获得超过357个赞
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:214万
展开全部
有哪些年份知道吗?知道的话用每个年份单独取前十条然后用union连接就好了
不知道的话先用游标把年份取出来,然后弄个循环来取
暂时没想到更好的方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式