MySQL选择最新日期-单表

安德鲁·T

我有一个看起来像这样的表,我想获取每个loc_id的最新insp_date的ID(insp_id)。

create table insp (
    insp_id int (10),
    loc_id int (11),
    insp_type varchar (150),
    insp_date date ,
    insp_active tinyint (2),
    insp_created timestamp ,
    insp_modified timestamp 
);

我尝试了从表(日期时间字段)中的选择最新记录”中选择“ IN”策略,但其他方法却使我加倍,因为一个loc_id的最新日期可能不是另一个最新日期:

SELECT insp_id, loc_id, insp_active, insp_date
FROM insp 
WHERE insp_active = 1 
AND insp_date IN(SELECT MAX(insp_date) FROM insp WHERE insp_active = 1 GROUP BY loc_id)
ORDER BY loc_id ASC, insp_date DESC;

我设置了一个SQL Fiddle,但是添加各种GROUP BY和MAX似乎没有得到它。我觉得我需要加入子查询或类似的查询,但目前还不确定。

http://sqlfiddle.com/#!2/f95e0/1

谢谢,安德鲁

Fabien TheSolution

您需要获取MAX每个位置日期,然后获取该日期的MAXinsp_id

查询1

SELECT insp.loc_id, max(insp.insp_id)
FROM insp
INNER JOIN
    (SELECT loc_id, max(insp_date) as insp_date
     FROM insp 
     WHERE insp_active = 1 
     GROUP BY loc_id) AS mdate ON mdate.loc_id = insp.loc_id AND 
                                  mdate.insp_date = insp.insp_date
WHERE insp_active = 1 
GROUP BY insp.loc_id

结果

| LOC_ID | MAX(INSP.INSP_ID) |
|--------|-------------------|
|      1 |                 1 |
|      2 |                40 |
|      3 |                48 |
|      4 |                37 |
|      5 |                49 |
|      6 |                39 |
|      7 |                50 |
|      8 |                46 |

更新 :

如果在特定日期仅进行一次活动检查,并且这始终是最新的活动检查,则可以执行以下操作:

SELECT insp.loc_id, insp.insp_id
FROM insp
INNER JOIN
    (SELECT loc_id, max(insp_date) as insp_date
     FROM insp 
     WHERE insp_active = 1 
     GROUP BY loc_id) AS mdate ON mdate.loc_id = insp.loc_id AND 
                                  mdate.insp_date = insp.insp_date
WHERE insp_active = 1 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mysql单表很慢

来自分类Dev

如何对行进行分组并选择要在数据表中显示的最新日期

来自分类Dev

从每组的3个表中选择具有最新日期的sql行

来自分类Dev

从两个联接表中选择具有最新日期而不重复的行?

来自分类Dev

如何从此查询中选择最新日期(不在现有表中)?

来自分类Dev

MySQL,从表中获取具有2个不同列的最新日期的行

来自分类Dev

MySQL,从表中获取具有2个不同列的最新日期的行

来自分类Dev

MySQL,单表多列

来自分类Dev

MySQL单表子查询

来自分类Dev

如何按MySQL中不同表的两个日期字段之间的最新更新日期排序

来自分类Dev

从 3 个表中选择数据,按最新日期值和另一个值分组

来自分类Dev

将 mssql 脚本转换为表中的 mysql 更新列,其他表中的最新日期

来自分类Dev

MySQL:如何选择某个日期之前的最新日期的记录

来自分类Dev

SQL UPDATE更新表中的最新日期

来自分类Dev

获取哈希表条目的最新更新日期

来自分类Dev

使用INNER JOIN显示SQL表中的最新日期

来自分类Dev

如何获取表中每个类别的最新日期?

来自分类Dev

Excel 2003数据透视表中ID的最新日期

来自分类Dev

SQL Server中多个表的最新日期和价格

来自分类Dev

如何从表中获取最新日期数据

来自分类Dev

如何从连接表中获取最新日期

来自分类Dev

从两个表中创建一个临时表,选择一个特定日期之前的最新日期

来自分类Dev

选择最新日期的帐号

来自分类Dev

有一个带有pcode的表,在不同的行中有许多日期。如何仅选择Pcode的最新日期

来自分类Dev

单表上的 MySQL 性能 ORDERBY 日期时间

来自分类Dev

如何在MySql中选择最新日期?

来自分类Dev

如何在MySql中选择今天之前的最新日期?

来自分类Dev

R转换日期表,方法是对前n个最新日期进行子设置

来自分类Dev

从加入中选择最新日期

Related 相关文章

  1. 1

    mysql单表很慢

  2. 2

    如何对行进行分组并选择要在数据表中显示的最新日期

  3. 3

    从每组的3个表中选择具有最新日期的sql行

  4. 4

    从两个联接表中选择具有最新日期而不重复的行?

  5. 5

    如何从此查询中选择最新日期(不在现有表中)?

  6. 6

    MySQL,从表中获取具有2个不同列的最新日期的行

  7. 7

    MySQL,从表中获取具有2个不同列的最新日期的行

  8. 8

    MySQL,单表多列

  9. 9

    MySQL单表子查询

  10. 10

    如何按MySQL中不同表的两个日期字段之间的最新更新日期排序

  11. 11

    从 3 个表中选择数据,按最新日期值和另一个值分组

  12. 12

    将 mssql 脚本转换为表中的 mysql 更新列,其他表中的最新日期

  13. 13

    MySQL:如何选择某个日期之前的最新日期的记录

  14. 14

    SQL UPDATE更新表中的最新日期

  15. 15

    获取哈希表条目的最新更新日期

  16. 16

    使用INNER JOIN显示SQL表中的最新日期

  17. 17

    如何获取表中每个类别的最新日期?

  18. 18

    Excel 2003数据透视表中ID的最新日期

  19. 19

    SQL Server中多个表的最新日期和价格

  20. 20

    如何从表中获取最新日期数据

  21. 21

    如何从连接表中获取最新日期

  22. 22

    从两个表中创建一个临时表,选择一个特定日期之前的最新日期

  23. 23

    选择最新日期的帐号

  24. 24

    有一个带有pcode的表,在不同的行中有许多日期。如何仅选择Pcode的最新日期

  25. 25

    单表上的 MySQL 性能 ORDERBY 日期时间

  26. 26

    如何在MySql中选择最新日期?

  27. 27

    如何在MySql中选择今天之前的最新日期?

  28. 28

    R转换日期表,方法是对前n个最新日期进行子设置

  29. 29

    从加入中选择最新日期

热门标签

归档