在 SQL 中获取具有唯一目的地的最新数据

Posted

技术标签:

【中文标题】在 SQL 中获取具有唯一目的地的最新数据【英文标题】:Get latest data with unique destination in SQL 【发布时间】:2013-08-16 13:15:20 【问题描述】:

我是 mysql 新手,我在 mysql 表中有这个表

我怎样才能产生这样的结果?

我想要的是获得具有唯一目的地和年份的最新时间戳

我已经尝试过这个 mysql 查询,但似乎不起作用:

SELECT chp_destination, cde_name, chp_year, chp_from, chp_to, chp_budget_price_high, chp_medium_price_high, chp_luxury_price_high,
    chp_budget_price_low, chp_medium_price_low, chp_luxury_price_low, chp_timestamp, chp_comment, MAX( chp_id ), 
FROM crm_hotel_price
LEFT JOIN crm_destinations ON cde_id = chp_destination
GROUP BY chp_destination, chp_year
ORDER BY chp_id

【问题讨论】:

您可以在这里找到一个非常相似的问题和正确答案:***.com/questions/1181374/… 我查看了那个帖子问题,发现它与我需要的很接近,除了它还应该根据唯一的目的地和年份考虑最新的日期时间。顺便谢谢.. “似乎无法正常工作”并不是对问题的充分描述。请将示例数据和结果作为文本放入您的问题中。 Stack Overflow 的目标之一是成为可搜索的解决方案存储库,人们无法在另一个站点上搜索图像中的文本。此外,外部链接可能会意外过期。 【参考方案1】:

试试这个:

SELECT * 
FROM (SELECT chp_id, chp_destination, cde_name, chp_year, chp_from, chp_to, chp_budget_price_high, 
                 chp_medium_price_high, chp_luxury_price_high, chp_budget_price_low, chp_medium_price_low, 
                 chp_luxury_price_low, chp_timestamp, chp_comment
        FROM crm_hotel_price
        LEFT JOIN crm_destinations ON cde_id = chp_destination
        ORDER BY chp_destination, chp_year, chp_id DESC) A 
GROUP BY chp_destination, chp_year

【讨论】:

我尝试了您的查询,它产生了我想要的结果:)。无论如何,如果我添加相同的唯一目的地和年份,它会根据日期时间显示具有唯一目的地和年份的条目吗?顺便谢谢:) “A”是什么意思?在 GROUP BY 之前?你能解释一下你的查询吗?非常感谢人:) 这个有简单的方法吗?

以上是关于在 SQL 中获取具有唯一目的地的最新数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:从最大日期/最新日期的记录中获取数据

从具有特定根的 SQL 表中获取最新分支的最有效方法是啥?

SQL查询从数据中获取最新价格?

获取最新日期的最新结果,其中三列在mysql中具有相同的值

从数据库 SQL 的唯一 ID 中获取最后一个数字 - PHP CodeIgniter

SQL+获取具有最新日期的行+row_number()+重复时的情况