请教:如何查询每年中最小的10条记录?

lishnqing 2015-08-30 10:54:43
如题,有很多年的数据,按日期顺序排列,假如要查询的字段为A,如何把每年中最小的10条记录找出来?
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
道玄希言 2015-08-31
  • 打赏
  • 举报
回复


SELECT T.* 
FROM
(
  SELECT t1.*,
  (
    SELECT COUNT(*)+1 FROM tbl 
    WHERE dt<t1.dt AND YEAR(dt)=YEAR(t1.dt)
  ) AS g_id
  FROM tbl t1
) T
WHERE T.g_id<=10
ORDER BY dt

ACMAIN_CHM 2015-08-31
  • 打赏
  • 举报
回复
参考下贴中的多种方法 http://blog.csdn.net/acmain_chm/article/details/4126306 [征集]分组取最大N条记录方法征集,及散分....
lxq19851204 2015-08-31
  • 打赏
  • 举报
回复

Select * From T1 A join (
Select year(transtime) as Year1,
SUBSTRING_INDEX(cast(group_concat(Transtime) as char),',',10) as str
 from (
Select * from t1 order by transtime)T group by year(TransTime))H
on year(A.transtime)=H.year1 and
INSTR(H.str,A.Transtime)<>0
lishnqing 2015-08-31
  • 打赏
  • 举报
回复
谢谢各位,我回去试试

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧