• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
博雅居
要想跟上时代,就得不断学习!
博客园    首页    新随笔    联系   管理    订阅  订阅
sql – 从表中选择行的最大日期的信息
 SELECT  a.spid,z.max_date,a.kcshl 
  FROM spkfjc a 
inner join 
(SELECT   a.spid AS spid ,MAX(b.rq) AS max_date   FROM  spkfjc a   JOIN splsk  b ON a.spid=b.spid  WHERE a.kcshl>0 
AND a.kcshl=b.jcshl GROUP BY a.spid   )z
on a.spid=z.spid   

我想要获取每个唯一的组,其中date是max,而check大于0.因此返回结果如下所示:

  1. group date checks
  2. 2 1/1/2013 800
  3. 1 1/3/2013 700
  4. 3 1/5/2013 200

 

解决方法

  1. SELECT group,MAX(date) as max_date
  2. FROM table
  3. WHERE checks>0
  4. GROUP BY group

这样做可以获得最大的日期。将它加入到数据中以获取其他列:

  1. Select group,max_date,check
  2. from table t
  3. inner join
  4. (SELECT group,MAX(date) as max_date
  5. FROM table
  6. WHERE checks>0
  7. GROUP BY group)a
  8. on a.group = t.group and a.max_date = date

内连接功能作为过滤器,仅获取最大记录。

FYI,您的列名可怕,请勿对列(组,日期,表)使用保留字。

If opportunity doesn’t knock, build a door
posted on 2020-05-12 14:36  博雅居  阅读(2884)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3