这是一个简单的表
我只想返回item_key和category_key唯一的一对creation_date
在这种情况下,请求应返回第1、3、4行。 1、3(因为这是唯一的一对)和4(因为该行是[[titi]和3]的最新对,然后是第3行
这是我的预期结果:
我使用mysql 5.7数据库。
感谢您的帮助
答案 0 :(得分:2)
您没有提到要使用哪个版本的MySQL,因此我假设它是现代版本(MySQL 8.x)。
您可以使用ROW_NUMBER()
函数,如下所示:
select *
from (
select *,
row_number() over(partition by item_key, category_key
order by creation_date desc) as rn
from t
) x
where rn = 1
针对MySQL 5.x的编辑:
在MySQL 5.x中,您可以执行以下操作:
select *
from t
where (item_key, category_key, creation_date) in (
select item_key, category_key, max(creation_date)
from t
group by item_key, category_key
)
答案 1 :(得分:0)
您最多可以使用分组方式
unsat