>

열이 여러 개인 테이블이 있습니다. 전체 테이블에서 최소값과 최대 값을 가져와야하지만 해당 최소값과 최대 값이 어느 범주에 속하는지 표시해야합니다. 필요한 열 이름은 Asset_Type 및 Asset_Value입니다. 여러 (5+) 자산 유형이 있지만 최소값과 최대 값의 자산 유형 만 표시하면됩니다.

SELECT Asset_Type, MAX(Asset_Value), MIN(Asset_Value) 
FROM Asset
GROUP BY Asset_Type

이것은 내가 가지고있는 것이지만, 테이블의 최소값과 최대 값뿐만 아니라 각 자산 유형의 최소값과 최대 값을 표시합니다.


  • 답변 # 1

    최대 값이 최소값과 다른 Asset_type을 가질 수 있다는 점을 고려할 때 별도의 쿼리를 만들어야합니다 (여기서 최소/최대 값이 동일한 여러 Asset_type이있을 수 있음을 고려하지 않음)

    (select 'max', Asset_Type, max(Asset_Value) as 'Asset_Value'
     from Asset
     group by Asset_Type
     order by 3 desc
     limit 1)
    union all
    (select 'min', Asset_Type, min(Asset_Value)
     from Asset
     group by Asset_Type
     order by 3 asc
     limit 1)
    
    

  • 답변 # 2

    최소값의 자산 유형과 최대 값의 자산 유형이 많이있을 수 있습니다. 따라서 값이 최소 또는 최대 값 (하위 쿼리에서 조회)과 일치하는 모든 asset_type을 선택하십시오.

    select distinct asset_value, asset_type
    where asset_value = (select min(asset_value) from asset)
       or asset_value = (select max(asset_value) from asset)
    order by asset_value, asset_type;
    
    

    이 검색어를 작성하는 다른 방법이 있지만 아이디어는 동일합니다.

관련 자료

  • 이전 c# - azure cosmos 문서 db - id별로 여러 문서 읽기
  • 다음 regex - R에서 "|"문자가있는 gsub