문제:
참석 행이 여러 개 포함된 테이블에서 사용자에 대한 데이터의 목표는 사용자 ID별로 그룹화된 각 사용자의 최근 출석 값만 얻는 것입니다. 그러나 주문 절과 함께 GROUP BY를 사용하면 원하는 결과가 반환되지 않습니다.
마지막 참석 값만 선택하려면 다음 접근 방식을 사용하세요.
<code class="sql">SELECT id_member, MAX(timestamp) AS last_timestamp, attendance FROM view_event_attendance WHERE id_event = 782 GROUP BY id_member ORDER BY last_timestamp DESC;</code>
<code class="sql">SELECT id_branch_channel, id_member, attendance, timestamp, id_member FROM view_event_attendance WHERE (id_member, last_timestamp) IN ( SELECT id_member, MAX(timestamp) AS last_timestamp FROM view_event_attendance WHERE id_event = 782 GROUP BY id_member ORDER BY last_timestamp DESC );</code>
<code class="sql">SELECT id_branch_channel, id_member, attendance, timestamp, id_member FROM view_event_attendance AS t1 WHERE timestamp = (SELECT MAX(timestamp) FROM view_event_attendance AS t2 WHERE t1.id_member = t2.id_member AND t1.id_event = t2.id_event);</code>
참고: 이 솔루션은 ORDER BY 절과 함께 GROUP BY를 사용하는 것을 방지합니다. 이는 대형 테이블에 비효율적일 수 있습니다.
위 내용은 MySQL을 사용하여 그룹화된 테이블에서 마지막 값만 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!