MySQL에서 집계 함수를 사용하여 그룹화된 데이터의 첫 번째 및 마지막 레코드 검색
MySQL에서 집계 함수를 사용하여 그룹화된 레코드에서 데이터를 가져올 때, 그룹의 첫 번째 레코드와 마지막 레코드를 검색하는 것은 어려울 수 있습니다. 여러 쿼리로 이를 수행할 수 있지만 대규모 테이블의 경우 비효율적일 수 있습니다.
이 프로세스를 최적화하기 위해 MySQL은 GROUP_CONCAT 및 SUBSTRING_INDEX 함수를 사용하여 보다 효율적인 솔루션을 제공합니다. .
GROUP_CONCAT 및 SUBSTRING_INDEX 사용
이러한 함수를 함께 사용하면 그룹의 값을 연결한 다음 SUBSTRING_INDEX를 사용하여 첫 번째 값과 마지막 값을 추출할 수 있습니다. 방법은 다음과 같습니다.
SUBSTRING_INDEX(GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime), ',', 1) AS open SUBSTRING_INDEX(GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC), ',', 1) AS close
작동 방식:
예:
다음 쿼리를 고려하세요.
SELECT MIN(low_price), MAX(high_price), SUBSTRING_INDEX(GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime), ',', 1) AS open, SUBSTRING_INDEX(GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC), ',', 1) AS close FROM symbols WHERE date BETWEEN(.. ..) GROUP BY YEARWEEK(date)
이것은 쿼리는 각 그룹의 첫 번째(열린) 레코드와 마지막(닫은) 레코드를 효율적으로 검색하여 대규모 테이블의 처리 시간을 최소화합니다.
위 내용은 MySQL에서 그룹화된 데이터의 첫 번째 및 마지막 레코드를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!