当前位置: 首页 > 知识库问答 >
问题:

从分组的MySQL数据获取最新日期

司空高义
2023-03-14

我的数据库中有以下数据

|NO | model | date     | 
+---+-------+----------+
|1  | bee   |2011-12-01|
|2  | bee   |2011-12-05|
|3  | bee   |2011-12-12|
|4  | tar   |2011-12-13|

我想获得每个模型组的最新日期:

| model | date     | 
+-------+----------+
| bee   |2011-12-12|
| tar   |2011-12-13|

我试过:

SELECT model, date 
FROM doc
WHERE date ........????? //what is the next?
GROUP BY model

共有1个答案

穆彬郁
2023-03-14

你在找每个型号的最大日期吗?

SELECT model, max(date) FROM doc
GROUP BY model

如果您正在寻找与整个表的最大日期匹配的所有模型...

SELECT model, date FROM doc
WHERE date IN (SELECT max(date) FROM doc)

[---已添加---]

对于那些希望显示与每个模型组中的最新日期匹配的每个记录的详细信息(而不是OP中要求的汇总数据)的用户:

SELECT d.model, d.date, d.color, d.etc FROM doc d
WHERE d.date IN (SELECT max(d2.date) FROM doc d2 WHERE d2.model=d.model)

MySQL8.0和更新版本支持over子句,对于较大的数据集,生成相同的结果要快一点。

SELECT model, date, color, etc FROM (SELECT model, date, color, etc, 
  max(date) OVER (PARTITION BY model) max_date FROM doc) predoc 
WHERE date=max_date;
 类似资料:
  • 问题内容: 我下面有日期数组 并想知道 最近的日期, 例如:最接近今天的日期。 我怎样才能做到这一点? 问题答案: 循环执行,将值转换为日期,然后将最新的值存储在var中。 诸如此类的东西…您就知道了如果您想获得今天之前的最新信息:

  • 问题内容: 我需要从MySQL表中获取与当前日期最接近的日期。 这是我的桌子: 因此,如果查询今天运行,它将返回 任何帮助深表感谢。谢谢 问题答案:

  • 问题内容: 我有大量的已发送电子邮件和状态码数据集。 在此示例中: 发送给 某人的 所有电子邮件的状态均为 1 发送给 他们 的中间电子邮件(按日期)的状态为 2 ,但最新的为 1 最近发送给 他人的 电子邮件的状态为 2 我需要检索的是发送给每个人的所有电子邮件的计数,以及 最新的 状态代码是什么。 第一部分非常简单: 这给了我: 我如何也可以获得最新的状态代码? 最终结果应为: 谢谢。 (服务

  • 我有一个熊猫DataFrame看起来像这样: 我的目标是能够为每个项目计算每个日期之间的价值差异。例如,我想找到A项: 12(32-20,因为最大年份是2012年,最小年份是2010年)和B项:20 (40 - 20,因为最大年份是2019年,最小年份是2016年)。 我使用以下代码获取每个项目的年最大值和年最小值: 然后,我找到每个项目的年份最小值和年份最大值。然而,我坚持做我想要的。

  • 问题内容: 在下表中,如何仅根据登录列获取的 最新记录 ,而不是所有3条记录? 问题答案: 使用按ID分组的汇总。这将列出每个最新的。 要获取完整的单个记录,请对仅返回每个ID 的子查询执行。

  • 我必须将这些详细信息显示在gridview中,如Tempname,作为下拉列表中唯一的和相关的日期时间,以及标签中最后一次按名称运行。无法上传表格图片,因为我没有足够的声誉。 但是我无法在标签中获得Runby名称。怎么显示?下面是我的存储过程