【问题标题】:latest timestamp with other variables being same其他变量相同的最新时间戳
【发布时间】:2020-08-31 01:09:42
【问题描述】:

您好,我有一个包含 6 列的 SQL 表,其中之一是时间戳。我需要知道如何只保留具有最新时间戳的行。

示例:

Product|Price|Product_id|Stock_code|supplier|timestamp
1      |375  |xxyyxx    |1234      |abcd    |2020-05-05
1      |372  |xxyyxx    |122       |abcd    |2020-05-04
1      |372  |xxyyxx    |122       |abcd    |2020-05-05
1      |375  |xxyyxx    |1234      |abcd    |2020-05-07
1      |375  |xxyyxx    |123       |abcd    |2020-05-07
2      |420  |xxyyyx    |1432      |bcda    |2020-05-07
2      |420  |xxyyyx    |1432      |bcda    |2020-05-06
2      |420  |xxyyyx    |1432      |bcda    |2020-05-13

我希望我的桌子看起来像

Product|Price|Product_id|Stock_code|supplier|timestamp
1      |375  |xxyyxx    |1234      |abcd    |2020-05-07
1      |372  |xxyyxx    |122       |abcd    |2020-05-05
1      |375  |xxyyxx    |123       |abcd    |2020-05-07
2      |420  |xxyyyx    |1432      |bcda    |2020-05-13

因此,当所有其他变量在两个或多个时间戳上彼此相等时,我想返回最新的时间戳。

写什么来达到这个目的?我已经尝试了太多没有用的东西。请帮忙

【问题讨论】:

  • 您使用的是哪个 dbms?
  • 看起来像一个基本的 GROUP BY。
  • 我对 sql 非常陌生,并且正在苦苦挣扎,我尝试过 group by 和 order by 但没有工作
  • 我正在使用 impala 编写 sql 查询
  • 等等。您的意思是要删除表中较旧的行吗?

标签: sql group-by timestamp max


【解决方案1】:

只需做一个GROUP BY:

select Product, Price, Product_id, Stock_code, supplier, max(timestamp)
from tablename
group by Product, Price, Product_id, Stock_code, supplier

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-13
    • 2021-11-28
    • 2018-02-22
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多