>데이터 베이스 >MySQL 튜토리얼 >SQL에서 0이 아닌 검사 값을 사용하여 최대 날짜 행을 효율적으로 선택하는 방법은 무엇입니까?

SQL에서 0이 아닌 검사 값을 사용하여 최대 날짜 행을 효율적으로 선택하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-08 13:36:42202검색

How to Efficiently Select Max Date Rows with Non-Zero Check Values in SQL?

SQL에서 검사 금액이 0이 아닌 최대 날짜 행 추출

이 예에서는 그룹, 날짜, 금전적 가치(현금 및 수표)가 포함된 데이터세트에서 가장 최근 날짜와 0이 아닌 확인 값을 가진 고유한 그룹을 선택하는 방법을 보여줍니다.

이 쿼리를 사용한 초기 시도는 충분하지 않은 것으로 나타났습니다.

<code class="language-sql">SELECT group, MAX(date), checks
FROM table
WHERE checks > 0
GROUP BY group
ORDER BY group DESC</code>

이 쿼리는 최대 날짜가 있는 행의 데이터뿐만 아니라 각 그룹의 모든 날짜와 확인 값을 반환했습니다.

이 솔루션에는 2단계 접근 방식이 포함됩니다.

먼저 0이 아닌 검사 값을 가진 각 그룹의 최대 날짜를 식별합니다.

<code class="language-sql">SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group</code>

그런 다음 이 결과 집합을 원래 테이블에 다시 결합하여 해당 최대 날짜 행에 해당하는 checks(및 기타 관련 열)을 검색합니다.

<code class="language-sql">SELECT t.group, a.max_date, t.checks
FROM table t
INNER JOIN (
    SELECT group, MAX(date) AS max_date
    FROM table
    WHERE checks > 0
    GROUP BY group
) a ON a.group = t.group AND a.max_date = t.date;</code>

이 내부 조인은 최대 날짜와 0이 아닌 확인 기준을 모두 일치하는 행만 최종 출력에 포함되도록 합니다.

모범 사례: 열 이름에 설명적이고 예약어가 아닌 단어를 사용하면(예: group_id 대신 group) 코드 가독성이 향상되고 오류 위험이 줄어듭니다.

위 내용은 SQL에서 0이 아닌 검사 값을 사용하여 최대 날짜 행을 효율적으로 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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