高级MySQL查询可获取具有相同ID和不同子ID的最新记录的范围

卢克

我有一个名为sensorvalue的表,如下所示:

station_id   sensor_id   Timestamp            Value
----------------------------------------------------------
1            1           2013-09-04 12:00:00  12.2
1            2           2013-09-04 12:00:00  13.1
1            3           2013-09-04 12:00:00  13.2
1            1           2013-09-04 12:05:00  12.1
1            2           2013-09-04 12:05:00  14.1
1            3           2013-09-04 12:05:00  13.2
1            1           2013-09-04 12:10:00  12.5
1            2           2013-09-04 12:10:00  13.3
1            3           2013-09-04 12:10:00  14.1

我需要一个MySQL查询,该查询使用station_id 1获取station的所有三个传感器的所有最新值。我想知道是否可以使用一个MySQL语句来实现。

我设法将数据从表中取出,但是效率不高。现在,我首先为站点1选择所有不同的传感器,然后为每个传感器调用另一个MySQL SELECT语句。一些站点有10个以上的传感器,因此使用这种方法,我至少需要11条MySQL语句才能从数据库中获取数据。

我想将此包含在一个MySQL语句中。那可能吗?如何?

厨师

检索所有工作站上所有传感器的最新读数。

SELECT s.*
  FROM (SELECT station_id, sensor_id, MAX(Timestamp) as max_timestamp
          FROM sensorvalue
         GROUP BY station_id, sensor_id
       ) m
  JOIN sensorvalue s
    ON s.station_id = m.station_id
   AND s.sensor_id  = m.sensor_id
   AND s.Timestamp  = m.max_timestamp

将其限制为特定的电台。

SELECT s.*
  FROM (SELECT station_id, sensor_id, MAX(Timestamp) as max_timestamp
          FROM sensorvalue
         WHERE station_id = 1
         GROUP BY station_id, sensor_id
       ) m
  JOIN sensorvalue s
    ON s.station_id = m.station_id
   AND s.sensor_id  = m.sensor_id
   AND s.Timestamp  = m.max_timestamp

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果两个条件在子记录的不同行上匹配,则高级MySQL查询可获取主记录

来自分类Dev

MySQL查询从id的不同列获取记录

来自分类Dev

sql查询以选择两列中具有相同id但不同值的记录

来自分类Dev

sql查询以选择两列中具有相同id但不同值的记录

来自分类Dev

MySQL查询以选择具有相同artistID但CDID不同的记录

来自分类Dev

SQL查询从具有相同ID的不同表中获取所有数据

来自分类Dev

PostgreSQL获取所有不同ID的最新记录的总和

来自分类Dev

MySQL查询以选择没有特定状态的记录,具有相同ID且具有多个状态的数据

来自分类Dev

如何查询特定列Mysql中相同id具有不同值的位置

来自分类Dev

如何在SQL中获取具有相同ID和不同表的列的总和?

来自分类Dev

子查询-查找具有不同ID的重复项-Oracle

来自分类Dev

检查具有相同ID的DB中的记录在字段中是否具有不同的值

来自分类Dev

MySql获取id = xxx的所有行,并且具有相同id的行中其他表中的最新列大于1

来自分类Dev

SQL查询以选择具有不同主题的最新记录

来自分类Dev

复制具有不同ID的记录

来自分类Dev

SQL无需子查询即可获取最新结果

来自分类Dev

连接具有相同ID的不同数据

来自分类Dev

SQL获取为空的记录的ID,并且没有其他记录具有相同ID的值吗?

来自分类Dev

如何获取最新记录或在mysql的列中具有所有不同值的最大对应日期的记录?

来自分类Dev

MySQL查询可获取具有限制的众多查询的“交集”

来自分类Dev

获取最后插入(最新添加)具有相同外键值的供应商合同 ID

来自分类Dev

如何获取具有特定ID的记录?

来自分类Dev

如何处理具有相同ID但Python列中的值不同的数据帧中的记录

来自分类Dev

提取具有相同ID和不同prod_id的行

来自分类Dev

提取具有相同ID和不同prod_id的行

来自分类Dev

获取具有相同类的元素的ID

来自分类Dev

获取具有相同 id 的列的差异

来自分类Dev

如何从内部具有子元素的按钮获取相同的ID,防止子元素单击?

来自分类Dev

如何只获取不同范围的最新记录?

Related 相关文章

  1. 1

    如果两个条件在子记录的不同行上匹配,则高级MySQL查询可获取主记录

  2. 2

    MySQL查询从id的不同列获取记录

  3. 3

    sql查询以选择两列中具有相同id但不同值的记录

  4. 4

    sql查询以选择两列中具有相同id但不同值的记录

  5. 5

    MySQL查询以选择具有相同artistID但CDID不同的记录

  6. 6

    SQL查询从具有相同ID的不同表中获取所有数据

  7. 7

    PostgreSQL获取所有不同ID的最新记录的总和

  8. 8

    MySQL查询以选择没有特定状态的记录,具有相同ID且具有多个状态的数据

  9. 9

    如何查询特定列Mysql中相同id具有不同值的位置

  10. 10

    如何在SQL中获取具有相同ID和不同表的列的总和?

  11. 11

    子查询-查找具有不同ID的重复项-Oracle

  12. 12

    检查具有相同ID的DB中的记录在字段中是否具有不同的值

  13. 13

    MySql获取id = xxx的所有行,并且具有相同id的行中其他表中的最新列大于1

  14. 14

    SQL查询以选择具有不同主题的最新记录

  15. 15

    复制具有不同ID的记录

  16. 16

    SQL无需子查询即可获取最新结果

  17. 17

    连接具有相同ID的不同数据

  18. 18

    SQL获取为空的记录的ID,并且没有其他记录具有相同ID的值吗?

  19. 19

    如何获取最新记录或在mysql的列中具有所有不同值的最大对应日期的记录?

  20. 20

    MySQL查询可获取具有限制的众多查询的“交集”

  21. 21

    获取最后插入(最新添加)具有相同外键值的供应商合同 ID

  22. 22

    如何获取具有特定ID的记录?

  23. 23

    如何处理具有相同ID但Python列中的值不同的数据帧中的记录

  24. 24

    提取具有相同ID和不同prod_id的行

  25. 25

    提取具有相同ID和不同prod_id的行

  26. 26

    获取具有相同类的元素的ID

  27. 27

    获取具有相同 id 的列的差异

  28. 28

    如何从内部具有子元素的按钮获取相同的ID,防止子元素单击?

  29. 29

    如何只获取不同范围的最新记录?

热门标签

归档