关于以下代码
SELECT product_id,new_price,change_date FROM Products WHERE change_date<='2019-08-16' GROUP BY product_id HAVING MAX(change_date)
表数据:
按道理我不是应该获取到每个id最大的日期,为什么得出的数据都是这样的,求解:
关于以下代码
SELECT product_id,new_price,change_date FROM Products WHERE change_date<='2019-08-16' GROUP BY product_id HAVING MAX(change_date)
表数据:
按道理我不是应该获取到每个id最大的日期,为什么得出的数据都是这样的,求解:
我之前遇到过跟你一样的问题,不用子查询解决不了,having的执行顺序在group by之后,在执行到having时每个id就只剩一条数据了,试一下下面这个sql。
select * from Products where product_id in (select max(product_id) from Products where change_date in (select max(change_date) from Products where change_date<='2019-08-16' group by product_id)group by product_id)