使用日期字段选择最新条目(无重复)

时间:2014-09-01 18:37:02

标签: sql

我有一个非常简单的查询,它返回一个项目编号列表,它们输入系统的日期以及上次修改条目的日期:

SELECT DISTINCT asset_id, entered_date, modified_date
FROM price_data

问题在于,有时候商品的定价不止一次,导致条目具有相同的asset_id和entered_date,但是不同的modified_dates。上述查询的工作原理是它返回价格,但它返回重新定价的任何内容的原始条目和最新条目。如何使此查询仅返回最新的价格值,而不是两个已重新定价的项目?

任何帮助将不胜感激!非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以按照您想要的唯一列进行分组,然后为每个组选择最高modified_date

SELECT asset_id, entered_date, max(modified_date)
FROM price_data
GROUP BY asset_id, entered_date

答案 1 :(得分:0)

select p.*
  from price_data p
  join (select asset_id, max(modified_date) as last_modified_date
          from price_data
         group by asset_id) v
    on v.last_modified_date = p.modified_date

您不能在不影响结果的情况下按价格分组,因此您必须在内联视图中单独选择最新修改日期,然后再加入实际表格。