weixin_40187983 2018-06-20 03:10 采纳率: 100%
浏览 679
已采纳

MySQL取值问题,一表格有重覆产品数据,只单取1笔值

如题,一表格会重覆很多次相同的产品值 product_id
但我每个值只取1个
情况1:取每笔数值时间为最新的1笔

情况2:我指定一个时间范围,在范围中取最新的1笔

请问SQL的语法如何实现呢? 感谢各位!

如下 (注意_,时间精准到秒数_)
图片说明

  • 写回答

9条回答

  • 洛克_ 2018-06-20 03:34
    关注

    如果是查询整条数据可以用一下sql

    情况一:

     SELECT * FROM `tablename` t1 
    RIGHT JOIN 
        (SELECT t.`product_id` AS product_id ,MAX(t.`Updatedate`) AS Updatedate 
        FROM `tablename` t 
        GROUP BY t.`product_id`) t2
    ON t1.`product_id` = t2.`product_id` AND t1.`Updatedate` = t2.`Updatedate`;
    

    情况2:

     SELECT * FROM `tablename` t1 
    RIGHT JOIN 
        (SELECT t.`product_id` AS product_id ,MAX(t.`Updatedate`) AS Updatedate 
        FROM `tablename` t 
        WHERE t.`Updatedate` >'2018-06-07' AND t.`Updatedate`<'2018-06-09'
        GROUP BY t.`product_id`) t2
    ON t1.`product_id` = t2.`product_id` AND t1.`Updatedate` = t2.`Updatedate`;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料