Mysql 每个ID的最新日期
我正试图通过以下查询提取具有最新日期的ID列表:Mysql 每个ID的最新日期,mysql,Mysql,我正试图通过以下查询提取具有最新日期的ID列表: SELECT DISTINCT A.ID, A.Price, A.Date FROM shop A WHERE A.ID <> '0' AND A.Price > '0' 但以下是期望的输出: ID Price Date 1 1.5 2017-04-16 2 1.1 2017-03-12 3 5.0 2017-01-23 4 3.
SELECT DISTINCT
A.ID,
A.Price,
A.Date
FROM
shop A
WHERE
A.ID <> '0'
AND A.Price > '0'
但以下是期望的输出:
ID Price Date
1 1.5 2017-04-16
2 1.1 2017-03-12
3 5.0 2017-01-23
4 3.5 2016-08-05
提前感谢在不使用分析函数的情况下实现这一点的标准方法是将shop加入一个子查询,该子查询标识每个ID的最新记录
如果没有一个连接的子查询,它不是同样工作吗?仍然按id分组,并将MAXdate作为选择选项之一?不,我不认为你所想的会起作用。您删除的答案也将不起作用。
ID Price Date
1 1.5 2017-04-16
2 1.1 2017-03-12
3 5.0 2017-01-23
4 3.5 2016-08-05
SELECT s1.*
FROM shop s1
INNER JOIN
(
SELECT ID, MAX(Date) AS max_date
FROM shop
WHERE ID <> 0 AND Price > 0 -- not sure about this condition
GROUP BY ID
) s2
ON s1.ID = s2.ID AND
s1.Date = s2.max_date