>  기사  >  데이터 베이스  >  `GROUP BY`를 사용하여 MySQL에서 그룹의 마지막 값을 검색하는 방법은 무엇입니까?

`GROUP BY`를 사용하여 MySQL에서 그룹의 마지막 값을 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-28 06:45:02350검색

How to Retrieve the Last Value for a Group in MySQL Using `GROUP BY`?

MySQL에서는 GROUP BY를 사용하여 특정 행 그룹의 마지막 값을 선택할 수 있지만 직접적으로는 불가능합니다. 이를 수행하는 데 사용되는 기술은 그룹화를 수행하기 전에 먼저 원하는 열을 타임스탬프와 같은 고유 식별자로 연결하는 것입니다.

다음 쿼리를 고려하세요.

<code class="sql">SELECT id_branch_channel, id_member, MAX(CONCAT(timestamp, attendance)) AS last_attendance
FROM view_event_attendance
WHERE id_event = 782
GROUP BY id_branch_channel, id_member;</code>

여기서 쿼리를 사용하여 각 행의 타임스탬프와 출석 열을 단일 문자열로 연결합니다. 이를 통해 id_branch_channel 및 id_member의 각 고유 쌍과 관련된 마지막으로 기록된 참석을 캡처할 수 있습니다. 그런 다음 MAX() 함수를 사용하여 연결된 문자열의 최대값을 선택하여 각 그룹에 대해 마지막으로 기록된 참석자를 효과적으로 제공합니다.

마지막 참석자가 확인되면 SUBSTRING()을 사용할 수 있습니다. 연결된 문자열에서 출석값만 추출하는 함수입니다. 이는 다음 쿼리로 가능합니다.

<code class="sql">SELECT id_branch_channel, id_member, SUBSTRING(last_attendance, 19) AS attendance
FROM (
    SELECT id_branch_channel, id_member, MAX(CONCAT(timestamp, attendance)) AS last_attendance
    FROM view_event_attendance
    WHERE id_event = 782
    GROUP BY id_branch_channel, id_member
) AS subquery;</code>

이 쿼리는 하위 쿼리를 사용하여 초기 그룹화 및 연결을 수행한 후 SUBSTRING() 함수를 사용하여 결과에서 출석 열만 선택합니다.

이 기술을 사용하면 view_event_attendance 테이블의 각 행 그룹에 대해 마지막으로 기록된 참석자를 효과적으로 선택할 수 있습니다.

위 내용은 `GROUP BY`를 사용하여 MySQL에서 그룹의 마지막 값을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.