最佳答案
使用窗口函数 ROW_NUMBER()
,如果在您的 RDBMS 中可用:
SELECT product, price, date, client
FROM (
SELECT
t.*,
ROW_NUMBER() OVER(PARTITION BY product, client ORDER BY date DESC) rn
FROM mytable t
) x
WHERE rn = 1
在 MySQL < 8.0 中:
SELECT product, price, date, client
FROM mytable t
WHERE NOT EXISTS (
SELECT 1
FROM mytable t1
WHERE t1.client = t.client AND t1.product = t.product AND t1.date > t.date
)
关于mysql - SQL 获取最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58317856/