반응형
마지막 알 수 없는 ID로 레코드 그룹 가져오기
알 수 없는 ID로 그룹화된 특정 레코드 그룹의 항목을 선택하려는 로그 테이블이 있습니다.
아래 표를 참조하십시오. 열은 더 있지만 질문과 관련이 없습니다.
-------------------------------------------------------
| id | details | deviceId | processId | timestamp |
-------------------------------------------------------
| 1 | startup | 753 | 538 | 1546346190 |
| 2 | processing | 753 | 538 | 1546346192 |
| 3 | logging | 753 | 538 | 1546346217 |
| 4 | done | 753 | 538 | 1546346220 |
| 5 | startup | 567 | 539 | 1590648690 |
| 6 | processing | 567 | 539 | 1590648692 |
| 7 | logging | 567 | 539 | 1590648717 |
| 8 | done | 567 | 539 | 1590648720 |
| 9 | startup | 753 | 540 | 1590655888 |
| 10 | processing | 753 | 540 | 1590655890 |
| 11 | logging | 753 | 540 | 1590655915 |
| 12 | email sent | 753 | 540 | 1590655918 |
| 13 | done | 753 | 540 | 1590655920 |
-------------------------------------------------------
한 장치에 대해 한 프로세스의 마지막 항목을 가져오려고 합니다.
다음과 같은 질문을 하면 장치의 모든 레코드가 표시됩니다.
SELECT *
FROM logtable
WHERE deviceId = 753
ORDER BY timestamp DESC
processId가 540인지 모르는데 어떻게 하나의 쿼리에서 processId 540의 레코드만 가져올 수 있습니까?
나는 이미 하위 질의와 함께 그것을 시도했습니다:
SELECT *
FROM logtable
WHERE processId IN (
SELECT processId
FROM logtable
WHERE deviceId = 753
ORDER BY timestamp DESC
LIMIT 1
)
하지만 MariaDB는 받아들이지 않습니다.LIMIT비밀리에
참고로 이 태그 아래에서 가장 자주 묻는 질문입니다.표준 솔루션은 다음과 같습니다.
SELECT x.*
FROM logtable x
JOIN
( SELECT processId
, MAX(timestamp) timestamp
FROM logtable
WHERE deviceId = 753
GROUP
BY processid
) y
ON y.processid = x.processid
AND y.timestamp = x.timestamp
사용하다=:
SELECT l.*
FROM logtable l
WHERE processId = (SELECT l2.processId
FROM logtable l2
WHERE l2.deviceId = 753
ORDER BY l2.timestamp DESC
LIMIT 1
);
필요한 것은IN하위 쿼리가 여러 행을 반환하는 경우.
언급URL : https://stackoverflow.com/questions/62063176/get-a-group-of-records-by-last-unknown-id
반응형
'programing' 카테고리의 다른 글
| MariaDB 연결이 거부되었습니다(NGINX, MariaDB, php-fpm) SQLSTATE[HY000] [2002] 연결이 거부되었습니다. (0) | 2023.08.26 |
|---|---|
| Mac에서 Android SDK 찾기 및 PATH에 추가 (0) | 2023.08.26 |
| Angular 2: URL을 변경하지 않은 라우팅 (0) | 2023.08.26 |
| 데이터베이스:위치 데이터를 쿼리하는 최상의 성능 방법은 무엇입니까? (0) | 2023.08.26 |
| org.java.kafka.common.카프카 예외:카프카 소비 장치를 구성하지 못했습니다. (0) | 2023.08.26 |