다음과 같은 테이블이 있습니다.
DATE ITEMS CLASS CATEGORY
---------------------------------------------------------
2016-10-01 17915 Red Apartment
2016-10-01 39246 Red Complex
2016-10-01 4376 Blue Apartment
2016-10-01 12668 Blue Complex
2016-10-01 513 Yellow Apartment
2016-10-01 23271 Yellow Complex
이 테이블에 CLASS별로 그룹화하고 한 값을 다른 값의 백분율로 계산하는 다른 열을 추가하고 싶습니다. 예를 들어 위의 경우 Class = Red로 표시된 두 행에 대해 Apartment 범주의 Items 값 (17915)을 가져와 Complex 범주의 Items 값 (39246)에 대한 백분율로 계산하려고합니다. ), 49.64 %로 약 50 %입니다.
따라서 위의 테이블에 적용된 쿼리는 다음과 같은 출력 테이블을 생성해야합니다.
DATE ITEMS CLASS CATEGORY OCCUPANCY
--------------------------------------------------------------------------
2016-10-01 17915 Red Apartment 17915 * 100 / 39246
2016-10-01 39246 Red Complex null
2016-10-01 4376 Blue Apartment 4376 * 100 / 12668
2016-10-01 12668 Blue Complex null
2016-10-01 513 Yellow Apartment 513 * 100 / 23271
2016-10-01 23271 Yellow Complex null
그 작업이 아니라 실제 값입니다. 이것에 대한 쿼리는 어떻게 생겼습니까? GROUP BY 절의 변형을 시도했지만 그룹화 후 한 행을 다음 행과 비교할 수있는 것은 생각할 수 없습니다.
셀프 조인과 유니온을 사용할 수 있습니다.
select a.DATE, a.ITEMS, a.CLASS, a.CATEGORY, (a.ITEMS *100)/ b.ITEMS AS OCCUPANCY
from my_table as a
inner join my_table as b on a.class = b.classe
wheer a.CATEGORY = 'Apartment'
AND b.CATEGORY = 'Complex'
UNION
SELECT DATE, ITEMS, CLASS, CATEGORY, NULL
FROM my_table
where CATEGORY = 'Complex'
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다