SQL: 일부 'x' 열 값이 최대 값인 행 가져오기

알리악산드르

내 데이터베이스에서 데이터를 가져오려고 합니다. 다른 하위 쿼리에 대한 하위 쿼리 쿼리 - 그리고 중간 결과로 얻은 결과는 다음과 같습니다.

안건 수량
34
연필 42
공책 42
지우개 12

item_quantity최대 값(위의 예에서 42)이 있는 행을 가져오려면 이 결과 집합에 대해 다른 쿼리를 작성해야 합니다 . 연필과 공책이 있는 행. 그러나 작업이 예상했던 것보다 약간 까다롭다는 것을 알게 되었습니다.

SELECT * FROM sub_query_result HAVING quantity = MAX(quantity)항상 빈 결과 집합을 반환합니다.

SELECT * FROM sub_query_result HAVING quantity = 42정확한 최대 수량을 미리 알아야하기 때문에 무의미합니다.

SELECT * FROM sub_query_result WHERE quantity = MAX(quantity)단순히 작동하지 않습니다("그룹 기능의 유효하지 않은 사용")



작동하지만 마음에 들지 않는 솔루션을 볼 수 있습니다. 이 sql 요청을 실행하는 백엔드 코드에 대해 수행해야 하는 추가 작업으로 인해 또는 그 비효율성으로 인해:

  • 임시 테이블을 만들 수 있습니다. 그것으로부터 수량과 장소를 변수로. 그런 다음 해당 임시 테이블에 대한 쿼리 내에서 이 변수를 사용하고 필요한 데이터를 얻을 수 있습니다.
  • 내가 할 수있는
SELECT * FROM query_result HAVING quantity = (SELECT MAX(quantity) FROM 
   <Query upon sub-query upon another sub-query that shall return query_result>)

하지만 그런 식으로 동일한 데이터를 두 번 요청합니다! 일반적으로 좋은 접근 방식이 아닙니다.



그래서... 내가 놓친 것이 있나요? 내 문제를 해결할 수 있는 간단하고 우아한 솔루션이 있습니까?

최대 값을 먼저 얻으려면 수량 내림차순으로 주문하십시오. 첫 번째 행, 즉 최대값이 있는 행만 선택하십시오. ANSI SQL 버전:

SELECT * FROM query_result
ORDER BY quantity DESC
FETCH FIRST 1 ROW WITH TIES

WITH TIES최대 수량이 동일한 행이 여러 개 있는 경우 여러 행을 얻을 수 있음을 의미합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

SQL 쿼리 : 특정 열의 값이 최대 인 행 가져 오기

SQL-열 A의 모든 값 X = 값 B 인 행 가져 오기

SQL 두 열에 대해 최대값이 있는 행 가져오기

TSQL : 열에 대한 최대 값이있는 행 가져 오기

Postgresql-열에 최대 값이있는 행 가져 오기

행 조건이있는 최대 값 열 가져 오기

Spark SQL: groupBy().agg() 내에서 다른 열이 최대값일 때 열 값 가져오기

열 값의 차이가 일부 열 값에 의해 최대 그룹 인 행 쌍을 찾는 방법

열 값의 차이가 일부 열 값에 의해 최대 그룹 인 행 쌍을 찾는 방법

동일한 SQL 테이블의 열 값의 최대 개수와 동일한 열 값을 갖는 SQL 테이블에서 행을 가져오는 방법

Pandas에서 조회 x 행의 최대 값인 열 추가

값이 배열에서 최대 값 인 변수 가져 오기

Pandas DataFrame의 특정 행에 대한 최대 값의 열 이름 가져 오기

조건이 충족되는 행에 대한 열의 최대 값 가져 오기

SQL-최대 값을 가진 열의 인덱스 가져 오기

최대 열 값에서 고유한 행 가져오기

SQL Server의 단일 열/행에서 여러 값 가져오기

SQL 그룹화 된 행의 테이블에서 열의 최대 값을 가진 행을 가져 오는 방법

쿼리 결과 후 열의 최대 값 가져 오기-SQL

(...,) Pandas Python없이 모든 행에서 최대 값을 가진 열의 인덱스 가져 오기

1 행 SQL 쿼리로 그룹없이 최대 값 가져 오기

Eloquent: 열 값(x)이 둘 이상의 행에 있는 모든 행 가져오기(SQL DB)

최대 합이 3 열인 행 가져 오기-MySQL

다른 열의 고유 값에 대한 최대 값 행 가져 오기 : Python

모든 행에 대한 새 열로 행 창에서 최대 값 가져 오기

Pandas 데이터 프레임-행의 최소값에 대한 열 인덱스 가져 오기

일치하지 않는 열 값에 대한 행 데이터 가져 오기

행이 특정 값인 열 인덱스로 값 가져 오기

매일 시계열에서 최소값과 최대 값 가져 오기

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관