동일한 ID 및 다른 하위 ID로 최신 레코드 범위를 가져 오는 고급 MySQL 쿼리

Luc

다음과 같은 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

station_id 1로 스테이션의 세 센서 모두의 최신 값을 모두 가져 오는 MySQL 쿼리가 필요합니다. 하나의 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

한 레코드의 최대 값이지만 다른 레코드의 고유 한 레코드를 가져 오기위한 액세스 쿼리

분류에서Dev

동일한 트랜잭션 (상위 ID 가져 오기)으로 sequelize에 상위 / 하위 레코드를 삽입하는 올바른 방법

분류에서Dev

각 ID에서 일부 최신 레코드를 찾기위한 SQL Server 쿼리

분류에서Dev

각 ID에서 일부 최신 레코드를 찾기위한 SQL Server 쿼리

분류에서Dev

Eloquent 쿼리는 복잡한 쿼리를 작성하여 동일한 테이블에있는 2 개의 다른 열에서 ID를 검색하는 고유 레코드를 가져옵니다.

분류에서Dev

Eloquent 쿼리는 복잡한 쿼리를 작성하여 동일한 테이블의 2 개의 다른 열에서 ID를 검색하는 고유 레코드를 가져옵니다.

분류에서Dev

SQL은 null 인 레코드의 ID를 가져오고 다른 레코드에는 동일한 ID에 대한 값이 없습니까?

분류에서Dev

두 범위 (최대 값보다 작고 최대 값보다 큼)에 값이있는 레코드를 제외한 레코드의 최대 값을 가져 오는 Oracle SQL 쿼리

분류에서Dev

SQL-ID에 대한 최신 레코드 가져 오기 및 빈 열 유지

분류에서Dev

"High"열에서 상위 5 개 최대 레코드를 선택하고 동일한 쿼리 및 주식 이름으로 분할 된 동일한 테이블에서 "Low"열에서 5 분 레코드를 선택합니다.

분류에서Dev

뚜렷한 환자 ID로 최신 시험 날짜 시간을 가져 오기위한 SQLite 쿼리

분류에서Dev

각 고유 한 열 ID의 레코드 3 개만 가져 오는 쿼리

분류에서Dev

MySql은 id = xxx이고 동일한 ID를 가진 행의 다른 테이블에서 최신 열이 1보다 큰 모든 행을 가져옵니다.

분류에서Dev

정확한 범위의 최대 날짜를 쿼리하고 결과에서 선택한 필드 가져 오기

분류에서Dev

mysql은 하위 쿼리없이 타임 스탬프로 최신 레코드를 얻습니다.

분류에서Dev

쿼리에서 블로그 ID를 사용하여 블로그 카테고리 및 키워드 가져 오기

분류에서Dev

한 열에 값이 0이고 다른 열에 고유 ID가있는 행에 대한 레코드를 선택하는 SQL 쿼리

분류에서Dev

2018 년 레코드 가져 오기 및 삭제를위한 Mongo DB 쿼리

분류에서Dev

역할을 생성하기 위해 길드 ID를 수동으로 가져 오는 대신 역할을 생성하는 다른 방법이 있습니까?

분류에서Dev

간단한 카테고리 검색을위한 Elasticsearch 쿼리, 가격 별 정렬 및 범위 별 레코드 가져 오기

분류에서Dev

특정 상태가없는 레코드, 여러 상태를 가진 동일한 ID를 가진 데이터를 선택하는 MySQL 쿼리

분류에서Dev

다른 값으로 동일한 필드를 가져 오는 SQL 쿼리

분류에서Dev

JPA 및 최대 절전 모드 : 열망로드의 모든 데이터를 가져 오기 위해 후속 쿼리를 수행하는 대신 하나 개의 쿼리에서 그 일을

분류에서Dev

도서 코드, 도서 제목, 공급 업체 이름 및 각 공급 업체를 기준으로 최고 가격을 책정 한 도서의 가격을 표시하는 쿼리를 작성합니다.

분류에서Dev

한 쿼리의 다른 ID에서 결과를 가져 오는 쿼리

분류에서Dev

Rails는 레코드 및 최신 연관 레코드를 포함하여 효율적으로 쿼리합니까?

분류에서Dev

동일한 ID를 가진 다른 테이블에서 모든 데이터를 가져 오는 SQL 쿼리

분류에서Dev

vba 배열에 포함 된 ID가있는 레코드를 가져 오는 MySql 쿼리

분류에서Dev

범위가있는 n * 2 형식의 MySQL 쿼리 최대 레코드

Related 관련 기사

  1. 1

    한 레코드의 최대 값이지만 다른 레코드의 고유 한 레코드를 가져 오기위한 액세스 쿼리

  2. 2

    동일한 트랜잭션 (상위 ID 가져 오기)으로 sequelize에 상위 / 하위 레코드를 삽입하는 올바른 방법

  3. 3

    각 ID에서 일부 최신 레코드를 찾기위한 SQL Server 쿼리

  4. 4

    각 ID에서 일부 최신 레코드를 찾기위한 SQL Server 쿼리

  5. 5

    Eloquent 쿼리는 복잡한 쿼리를 작성하여 동일한 테이블에있는 2 개의 다른 열에서 ID를 검색하는 고유 레코드를 가져옵니다.

  6. 6

    Eloquent 쿼리는 복잡한 쿼리를 작성하여 동일한 테이블의 2 개의 다른 열에서 ID를 검색하는 고유 레코드를 가져옵니다.

  7. 7

    SQL은 null 인 레코드의 ID를 가져오고 다른 레코드에는 동일한 ID에 대한 값이 없습니까?

  8. 8

    두 범위 (최대 값보다 작고 최대 값보다 큼)에 값이있는 레코드를 제외한 레코드의 최대 값을 가져 오는 Oracle SQL 쿼리

  9. 9

    SQL-ID에 대한 최신 레코드 가져 오기 및 빈 열 유지

  10. 10

    "High"열에서 상위 5 개 최대 레코드를 선택하고 동일한 쿼리 및 주식 이름으로 분할 된 동일한 테이블에서 "Low"열에서 5 분 레코드를 선택합니다.

  11. 11

    뚜렷한 환자 ID로 최신 시험 날짜 시간을 가져 오기위한 SQLite 쿼리

  12. 12

    각 고유 한 열 ID의 레코드 3 개만 가져 오는 쿼리

  13. 13

    MySql은 id = xxx이고 동일한 ID를 가진 행의 다른 테이블에서 최신 열이 1보다 큰 모든 행을 가져옵니다.

  14. 14

    정확한 범위의 최대 날짜를 쿼리하고 결과에서 선택한 필드 가져 오기

  15. 15

    mysql은 하위 쿼리없이 타임 스탬프로 최신 레코드를 얻습니다.

  16. 16

    쿼리에서 블로그 ID를 사용하여 블로그 카테고리 및 키워드 가져 오기

  17. 17

    한 열에 값이 0이고 다른 열에 고유 ID가있는 행에 대한 레코드를 선택하는 SQL 쿼리

  18. 18

    2018 년 레코드 가져 오기 및 삭제를위한 Mongo DB 쿼리

  19. 19

    역할을 생성하기 위해 길드 ID를 수동으로 가져 오는 대신 역할을 생성하는 다른 방법이 있습니까?

  20. 20

    간단한 카테고리 검색을위한 Elasticsearch 쿼리, 가격 별 정렬 및 범위 별 레코드 가져 오기

  21. 21

    특정 상태가없는 레코드, 여러 상태를 가진 동일한 ID를 가진 데이터를 선택하는 MySQL 쿼리

  22. 22

    다른 값으로 동일한 필드를 가져 오는 SQL 쿼리

  23. 23

    JPA 및 최대 절전 모드 : 열망로드의 모든 데이터를 가져 오기 위해 후속 쿼리를 수행하는 대신 하나 개의 쿼리에서 그 일을

  24. 24

    도서 코드, 도서 제목, 공급 업체 이름 및 각 공급 업체를 기준으로 최고 가격을 책정 한 도서의 가격을 표시하는 쿼리를 작성합니다.

  25. 25

    한 쿼리의 다른 ID에서 결과를 가져 오는 쿼리

  26. 26

    Rails는 레코드 및 최신 연관 레코드를 포함하여 효율적으로 쿼리합니까?

  27. 27

    동일한 ID를 가진 다른 테이블에서 모든 데이터를 가져 오는 SQL 쿼리

  28. 28

    vba 배열에 포함 된 ID가있는 레코드를 가져 오는 MySql 쿼리

  29. 29

    범위가있는 n * 2 형식의 MySQL 쿼리 최대 레코드

뜨겁다태그

보관