반응형
한 열에 따라 중복 항목에서 첫 번째 행 가져오기 마리아DB
MariaDB 버전 10.2.21을 사용하고 있습니다.
중복된 user_id(열 중 하나)를 가진 행이 여러 개 있습니다.
user_id뿐만 아니라 user_id의 첫 번째 출현과 관련된 모든 행의 첫 번째 출현을 가져오고 싶습니다.
select
distinct user_id,
from
user_table
where
user_id in (a,b,c,d,e,f,....) and
date = '2020-02-25';
이제 관련 열을 추가하려고 하면 모든 것이 명확하게 나타납니다.
EXPLAIN
select
distinct user_id,
ST_X(location) as lng
from
user_table
where
user_id in (a,b,c,d,e,f,....) and
date = '2020-02-25';
200만 행이 넘는다고...3000개의 고유 user_id밖에 없습니다.첫 번째 user_id만 관련지어져 있는 위치와 함께 취득하고 싶습니다.
데이터베이스가 매우 크기 때문에 인덱스를 최대한 활용해야 합니다.그렇지 않으면 파손됩니다.
내 인덱스는 [user_id, date]입니다.user_id는 첫 번째 인덱스, date는 두 번째 인덱스입니다.
그러면 인덱스를 사용하여 고유한 사용자 정보(처음 발생 = 맨 위 행)를 얻어서 내 db가 고장나지 않도록 하는 방법이 궁금하네요.
그래서 만약 있다면
user_id location
1 (123.22, 22.33)
1 (111.22, 22.12)
2 (155.33, 41.23)
2 (160.41, 12.31)
나는 얻을 것이다.
user_id location
1 (123.22, 22.33)
2 (155.33, 41.23)
1개의 장소만 집약하는 경우 사용합니다.
select user_id, ST_X(min(location)) as lng
from user_table
where user_id in (a,b,c,d,e,f,....) and
date = '2020-02-25'
group by user_id;
언급URL : https://stackoverflow.com/questions/60518241/getting-first-rows-from-duplicates-depending-on-one-column-mariadb
반응형
'it-source' 카테고리의 다른 글
MariaDB의 기본 포트 번호는 무엇입니까? (0) | 2022.11.20 |
---|---|
VMware Openstack 기반의 Fedora 클라우드 기반 - phpMyAdmin 오류 #2002 (0) | 2022.11.20 |
목록을 되돌리거나 거꾸로 루프하려면 어떻게 해야 하나요? (0) | 2022.11.20 |
ES6 클래스에서 정적 상수를 선언하시겠습니까? (0) | 2022.11.20 |
오류 갤러 클러스터: wsrep_sst_rsync --role 'joiner'에서 'ready'를 읽지 못했습니다. (0) | 2022.11.20 |