【问题标题】:How do I get the corresponding column value for MAX function?如何获取 MAX 函数对应的列值?
【发布时间】:2017-08-26 06:50:19
【问题描述】:

我有以下查询,它给出了 MAX(date_announced) 的最新 date_announced,但没有给出 software_product_build 的相应值? 如何获取 MAX(date_announced) 对应的 software_product_build 值?

   select 
   software_product_build,
   MAX(date_announced) as date_announced
    from software_product_builds
   group by software_product_id

一个案例:-

   select software_product_build,
   MAX(date_announced) as date_announced
    from software_product_builds
    where software_product_build LIKE '%QCA6290.LA.0.1%' group by software_product_id;

OUTPUT:-
|------software_product_build------|-------date_announced------|
--QCA6290.LA.0.1-00001-STD.INT-6---|------2017-03-13 21:13:32---


select software_product_build from software_product_builds where date_announced='2017-03-13 21:13:32';

OUTPUT:-
CI_QCA6290.LA.0.1-03091-STD.INT-61

【问题讨论】:

  • @shmosel - 所以我应该说group by software_productbuild 除了software_product_id 吗?
  • 你到底想要什么,software_product_id 或 software_productbuild 的最大日期?
  • 想要按 software_product_id 获取最大日期组的 software_product_build 吗?
  • 对不起。我仍然无法完全理解这个问题。举一个案例,贴出输入输出记录。

标签: mysql database greatest-n-per-group


【解决方案1】:

首先,您需要获取每个软件产品 ID 的最大日期,然后您可以找到该最大日期的软件产品版本。

选择 spb.software_product_build, Tmp.date_announced 从 software_product_builds spb 加入 (选择software_product_id, MAX(date_announced) 作为 date_announced 来自 software_product_builds 按 software_product_id 分组)作为 tmp on(tmp.software_product_id=spb.software_product_id 和 tmp.date_announced=spb.date_announced)

【讨论】:

  • 可以说我想跳过带有值 0000-00-00 00:00:00 的日期公告应该在上面的查询中添加检查的位置
  • 您可以在最后添加 where 子句与您的条件请添加类似这样的内容 where spb.date-announced your_condition
  • 你得到你想要做的事了吗?
猜你喜欢
  • 1970-01-01
  • 2011-10-12
  • 2012-06-03
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多