UNION
'SELECT'에 빠진 6은 하이브 버전을 지원하지 않습니다 (그리고 당신이 필요도없는 이리).
대신 UNION ALL
을 사용하십시오. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Union
UNION [ALL]에는 양쪽에서 동일한 스키마가 필요합니다.
하이브에서는 다른 SQL 언어와 달리 형식이 비슷해야하며 별칭도 마찬가지입니다. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Union
create 문에서 열 목록을 제공 할 수 없습니다.
SELECT 절에 관련 별칭을 추가하십시오.
이것은 쿼리
CREATE TABLE RANGE_FT
AS
SELECT 'EMR' as HOSP_VAR ,MAX (emr_avg_score) - MIN (emr_avg_score) as RANGE from JOIN9
UNION ALL SELECT 'SCI' as HOSP_VAR ,MAX (sci_avg_score) - MIN (sci_avg_score) as RANGE from JOIN9
UNION ALL SELECT 'ASTH' as HOSP_VAR ,MAX (asth_avg_score) - MIN (asth_avg_score) as RANGE from JOIN9
UNION ALL SELECT 'HF' as HOSP_VAR ,MAX (hf_avg_score) - MIN (hf_avg_score) as RANGE from JOIN9
UNION ALL SELECT 'SC' as HOSP_VAR ,MAX (sc_avg_score) - MIN (sc_avg_score) as RANGE from JOIN9
UNION ALL SELECT 'PNEU' as HOSP_VAR ,MAX (pneu_avg_score) - MIN (pneu_avg_score) as RANGE from JOIN9
UNION ALL SELECT 'PREV' as HOSP_VAR ,MAX (prev_avg_score) - MIN (prev_avg_score) as RANGE from JOIN9
UNION ALL SELECT 'BC' as HOSP_VAR ,MAX (BC_avg_score) - MIN (BC_avg_score) as RANGE from JOIN9
UNION ALL SELECT 'HEART' as HOSP_VAR ,MAX (heart_avg_score) - MIN (heart_avg_score) as RANGE from JOIN9
UNION ALL SELECT 'PREG' as HOSP_VAR ,MAX (preg_avg_score) - MIN (preg_avg_score) as RANGE from JOIN9
;
을 고정 된 버전입니다 그리고 여기이 작동 할 단 하나의 SELECT
create table RANGE_FT
as
select inline
(
array
(
struct ('EMR' ,MAX (emr_avg_score) - MIN (emr_avg_score) )
,struct ('SCI' ,MAX (sci_avg_score) - MIN (sci_avg_score) )
,struct ('ASTH' ,MAX (asth_avg_score) - MIN (asth_avg_score))
,struct ('HF' ,MAX (hf_avg_score) - MIN (hf_avg_score) )
,struct ('SC' ,MAX (sc_avg_score) - MIN (sc_avg_score) )
,struct ('PNEU' ,MAX (pneu_avg_score) - MIN (pneu_avg_score))
,struct ('PREV' ,MAX (prev_avg_score) - MIN (prev_avg_score))
,struct ('BC' ,MAX (BC_avg_score) - MIN (BC_avg_score) )
,struct ('HEART' ,MAX (heart_avg_score) - MIN (heart_avg_score))
,struct ('PREG' ,MAX (preg_avg_score) - MIN (preg_avg_score))
)
) as (HOSP_VAR,RANGE)
from JOIN9
;
시도의 SET (당신이 그것을 붙여 넣기 한 후, 그것을 선택하고 버튼을 누르 Ctrl 키 + k는 코드에 서식을) –
전에 NOCOUNT 당신의 도움. nocount를 설정하는 방법에 대해 좀 더 자세히 설명해 줄 수 있습니까? 나는이 명령을 어디에 두어야 하는지를 뜻한다. 내 코드는 : DROP TABLE RANGE_FT; CREATE TABLE RANGE_FT (HOSP_VAR 문자열 RANGE의 INT) SELECT 'EMR'MAX (emr_avg_score) AS - MIN (emr_avg_score) JOIN9 UNION SELECT "SCI"에서, MAX (sci_avg_score) - MIN (sci_avg_score) JOIN9 행 UNION SELECT 'ASTH', MAX (asth_avg_score) - MIN (asth_avg_score) from JOIN9 UNION SELECT 'HF', MAX (hf_avg_score) - MIN (hf_avg_score) from JOIN9; –
하이 싱 주셔서 감사합니다 텍스트와 이미지를 교체하십시오 쿼리 –