SQL은 열에 최대값이 있는 행만 선택합니다.
P粉937382230
P粉937382230 2023-08-23 11:08:57
0
2
398
<p>다음 문서 양식이 있습니다(간단한 버전은 다음과 같습니다). </p> <테이블 클래스="s-테이블"> <머리> <tr> <번째> ID <번째> 환승 <번째> 콘텐츠 </tr> </머리> <본문> <tr> <td>1</td> <td>1</td> <td>...</td> </tr> <tr> <td>2</td> <td>1</td> <td>...</td> </tr> <tr> <td>1</td> <td>2</td> <td>...</td> </tr> <tr> <td>1</td> <td>3</td> <td>...</td> </tr> </tbody> </테이블> <p>ID당 하나의 행을 선택하고 가장 큰 RPM만 선택하는 방법은 무엇입니까? </p><p> 위 데이터를 사용하면 결과에는 <code>[1, 3, ...]</code> 및 <code>[2, ​​​​1, ..]</code> . 저는<em><strong>MySQL</strong></em>을 사용하고 있습니다. </p> <p>현재 저는 <code>while</code> 루프에서 검사를 사용하여 결과 집합에서 이전 버전을 감지하고 덮어쓰고 있습니다. 하지만 이것이 이 결과를 얻을 수 있는 유일한 방법일까요? <strong>SQL</strong> 솔루션이 없나요? </p>
P粉937382230
P粉937382230

모든 응답(2)
P粉638343995

저는 가능한 한 적은 코드를 사용하는 것을 선호합니다...

이 작업은 IN를 사용하여 수행할 수 있습니다. 이것을 시도해 보세요:

으아아아

제 생각에는 덜 복잡하고... 읽고 유지하기가 더 쉽습니다.

P粉517475670

첫눈에...

필요한 것은 MAX 聚合函数的 GROUP BY:

이 포함된 절뿐입니다. 으아악

일이 그렇게 간단할 수가 없잖아요?

content개도 필요하다는 사실을 방금 확인했습니다.

이것은 SQL에서 매우 일반적인 문제입니다. 각 그룹 식별자 열에 최대값이 있는 행의 모든 ​​데이터를 찾습니다. 저는 직장 생활을 하면서 이런 말을 자주 듣습니다. 사실 이것은 제가 현 직장에서 기술면접을 할 때 대답한 질문 중 하나였습니다.

실제로 Stack Overflow 커뮤니티에서는 다음과 같은 질문을 처리하기 위해 이라는 태그를 만들었습니다.

기본적으로 이 문제를 해결하는 방법에는 두 가지가 있습니다.

간단한 group-identifier, max-value-in-group하위 쿼리 조인 사용

이 접근 방식에서는 먼저 하위 쿼리에서 group-identifier, max-value-in-group(上面已解决)。然后,将表连接到子查询,并在 group-identifiermax-value-in-group를 찾습니다(위에서 해결됨). 그런 다음 테이블을 하위 쿼리에 조인하고

max-value-in-group에서 동일하게 만듭니다.

으아악

왼쪽 조인, 조인 조건 및 필터 조정

group-identifier이 방법에서는 테이블 자체를 조인하게 됩니다.

에는 평등이 존재합니다. 그런 다음 2가지 현명한 움직임:
  1. 두 번째 연결 조건은 왼쪽 값이 오른쪽 값보다 작다는 것
  2. NULL(这是一个 LEFT JOIN1단계를 수행하면 실제로 가장 큰 값을 갖는 행이 오른쪽에 표시됩니다
  3. , 기억하시나요? ). 그런 다음 조인 결과를 필터링하여 오른쪽에 NULL이 있는 행만 표시합니다.

결국:

으아악

결론

두 가지 방법 모두 동일한 결과를 가져옵니다.

group-identifier 具有 max-value-in-groupmax-value-in-group이 포함된 두 개의 행

이 있는 경우 두 방법의 결과에 두 행이 모두 표시됩니다.

두 가지 방법 모두 SQL ANSI와 호환되므로 "특성"에 관계없이 선호하는 RDBMS와 함께 작동합니다.

두 접근 방식 모두 성능 친화적이지만 상황이 다를 수 있습니다(RDBMS, 데이터베이스 구조, 인덱스 등). 따라서 다른 방법보다 한 가지 방법을 선택할 때 Benchmark

를 사용하세요. 그리고 자신에게 가장 적합한 것을 선택하십시오. 🎜
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!