그래, 합법적 인 오류나 아무것도 얻지는 못했지만 상태를 두 개의 개별 테이블에 나열한 횟수를 계산할 수 있도록 가져 오려고합니다. 원하는 모든 상태가 표시되지만 일부 상태에서는 여러 값이 있어야하지만 각 COUNT 값은 1 값이됩니다.이 문제를 해결할 수 있습니까?모든 값을 계산하지 않는 UNIONED 테이블
SELECT shipping_address_state,
COUNT(shipping_address_state) OVER (PARTITION BY shopper_account_id)
FROM orders
WHERE shipping_address_country IN ('USA', 'Canada', 'Mexico')
UNION
SELECT vendor_state,
COUNT(vendor_state) OVER (PARTITION BY vendor_id)
FROM vendor
WHERE vendor_country IN ('USA', 'Canada', 'Mexico')
편집은 그래서 몇 가지 조언을했다, 나는 UNION ALL로 변경되었습니다. 또한 SELECT vendor_state 및 shipping_address_state 부분에 DISTINCT를 추가했습니다. 이제는 주 이름 열의 모든 반복이 제거되었지만 카운트는 여전히 1입니다. DISTINCT 키워드가 없으면 반복 된 상태가 표시되지만 별도의 데이터 행 (펜실베니아처럼 3 회 표시되지만 각각 1의 수를 가짐). 이것은 지금처럼 생겼습니다. COUNT이 (가) 꺼진 이유를 아는 사람이 있습니까?
SELECT DISTINCT vendor_state "State",
COUNT(vendor_state) OVER (PARTITION BY vendor_id) "Count"
FROM vendor
WHERE vendor_country IN ('USA', 'Canada', 'Mexico')
UNION ALL
SELECT DISTINCT shipping_address_state "State",
COUNT(shipping_address_state) OVER (PARTITION BY shopper_account_id) "Count"
FROM orders
WHERE shipping_address_country IN ('USA', 'Canada', 'Mexico')
편집은 흥미롭게도, 나는 COUNT 문제의 큰 부분을 해결했다. 방금 PARTITION BY 절을 변경하여 PARTITION BY 절을 계산했습니다. 이제 그들은 제대로 계산되고 있지만 두 테이블 모두에 있기 때문에 State 컬럼에는 여전히 값이 반복됩니다. 각 열은 해당 테이블에 이 나타나는 횟수를 계산합니다.. UNION ALL 대신 UNION으로 다시 변경하려고했지만 아무 것도 변경하지 않았습니다. 이것이 할 수 있는지 보자! UNION ALL
UNION
에 대한 UNION
밖으로
SELECT DISTINCT vendor_state "State",
COUNT(vendor_state) OVER (PARTITION BY vendor_state) "Count"
FROM vendor
WHERE vendor_country IN ('USA', 'Canada', 'Mexico')
UNION ALL
SELECT DISTINCT shipping_address_state "State",
COUNT(shipping_address_state) OVER (PARTITION BY shipping_address_state) "Count"
FROM orders
WHERE shipping_address_country IN ('USA', 'Canada', 'Mexico')
ORDER BY "State"
일부 샘플 테이블 데이터와 예상 출력 위대한 도움이 될 것입니다 – Wanderer
당신의 파괴를 되돌릴 수 있습니다. 내 게시물을 파손하지 마십시오. –