【问题标题】:Max Date for each entry每个条目的最大日期
【发布时间】:2021-12-19 01:11:50
【问题描述】:

我对 SQL 比较陌生,我正在尝试查询有很多重复项的内容,所以我得到了很多日期,但我只想要每个条目中的 1 个,而且我正在苦苦思考如何这样做。

这是我所拥有的示例查询,但我不确定如何从这里获得我正在寻找的结果。

select 
    product_id,
    max(date_ordered)
    from products

更新:我也尝试过 Group By,但由于有多个日期,列表中仍然存在重复的产品。如何仅列出最近订购日期的 1 件产品?

更新:Group by 终于成功了,感谢那些提出建议的人。用户错误。

【问题讨论】:

  • 你需要GROUP BY
  • 另外,我通常有复数表名和单数列名。像表格产品一样,带有列产品。
  • @jarlh 我试过按订购日期和产品分组,列表中仍然有重复的产品。如何删除这些?
  • 您只需要最大日期,所以不要按该列分组。
  • @jarlh 当我尝试时,我收到一条错误消息 ` ORA-00979: not a GROUP BY expression 00979. 00000 - “not a GROUP BY expression” *原因:*操作:行错误: 63 列:11 `

标签: sql oracle date max


【解决方案1】:

我试过按订购日期和产品分组,列表中仍然有重复的产品。

product_id 列上使用GROUP BY(而不是在date_ordered 列上):

SELECT product_id,
       max(date_ordered)
FROM   products
GROUP BY product_id;

【讨论】:

    【解决方案2】:
    select product_id,max(date_ordered)
    from products
    group by product_id
    

    【讨论】:

      【解决方案3】:

      你必须使用 group by,你有文档在这里:https://sql.sh/cours/group-by

      【讨论】:

      • 你能显示你的数据表,以及给出这个错误的查询吗?
      猜你喜欢
      • 2019-12-26
      • 2020-10-30
      • 2019-08-28
      • 1970-01-01
      • 2022-01-25
      • 2020-11-17
      • 2018-06-08
      • 1970-01-01
      • 2020-02-12
      相关资源
      最近更新 更多