반응형
mysql의 다른 활동을 기반으로 행 가져오기
user_locations의 mysql 테이블이 하나 있습니다.아래와 같은 기록이 있습니다.
id user_id latitude longitude
1 1 28.62584611111111 77.10560666666667
2 1 28.62584611111111 77.10560666666667
3 1 28.62584611111111 77.10560666666667
4 1 28.62584611111111 77.10560666666667
5 1 28.627457222222223 77.11092111111111
6 1 28.627457222222223 77.11092111111111
7 1 28.62584611111111 77.10560666666667
8 1 28.62584611111111 77.10560666666667
자, 위도와 경도가 같은 id 1,2,3,4,7,8과 경도가 다른 id 5,6을 보십시오.
만약 내가 그룹을 만든다면 나는 단지 두개의 결과만을 얻을것입니다.하지만 제 예상 생산량은 다음과 같습니다.
id user_id latitude longitude
4 1 28.62584611111111 77.10560666666667
6 1 28.627457222222223 77.11092111111111
8 1 28.62584611111111 77.10560666666667
아래 쿼리를 시도해 보았지만 두 가지 결과를 제공합니다.
SELECT * FROM `user_locations` WHERE `user_id` = 1 Group by latitude, longitude
내가 원하는 것은 만약 계속해서 같은 위도와 경도가 발생한다면 그것은 하나의 최신 행을 반환해야 하고 그 이후에 위도와 경도의 변화가 발생한다면 그 최신 행이 올 것이고 만약 그 사이에 다시 같은 위도와 경도가 반환되어야 하는 이전 집합에서 나왔다면 그것을 반환해야 한다는 것입니다.제 문제를 이해해 주시기 바랍니다.이 문제를 해결하는 데 도움을 줄 수 있는 사람이 있습니까?
이것은 틈과 섬의 문제입니다.섬은 사용자, 위도 및 경도가 동일한 인접 행을 나타내며 각 섬의 마지막 기록을 원합니다.
여기서 가장 간단한 방법은 아마도lag()
위도/longitude의 변화를 확인합니다.
select *
from (
select ul.*,
lag(latitude) over(partition by user_id order by id) lag_latitude,
lag(longitude) over(partition by user_id order by id) lag_longitude
from user_locations ul
) ul
where latitude <> lag_latitude or longitude <> lag_longitude
여기에는 MariaDB 12.2.2 이상이 필요합니다.이전 버전에서는 상관 관계가 있는 하위 쿼리를 사용하여 창 기능을 에뮬레이트할 수 있습니다.이는 많은 수의 행에서 비효율적일 수 있습니다.
select *
from user_locations ul
where latitude <> (select ul1.latitude from user_locations ul1 where ul1.user_id = ul.user_id and ul1.id < ul.id order by ul1.id desc limit 1)
or longitude <> (select ul1.longitude from user_locations ul1 where ul1.user_id = ul.user_id and ul1.id < ul.id order by ul1.id desc limit 1)
언급URL : https://stackoverflow.com/questions/65254640/fetch-rows-based-on-another-activity-in-mysql
반응형
'programing' 카테고리의 다른 글
jQuery를 사용하여 WordPress에 이미지 로드 (0) | 2023.10.20 |
---|---|
필수 특성 각도 J의 파일 입력과 함께 작동하지 않습니다. (0) | 2023.10.20 |
스트리밍 버퍼를 utf8-string으로 변환 (0) | 2023.10.20 |
Android Service가 Activity와 통신하도록 하는 방법 (0) | 2023.10.20 |
Woocommerce에서 선택한 "일" 사용자 정의 필드를 기반으로 카트 항목 가격 계산 (0) | 2023.10.20 |