2017-12-06 6 views
0

난 단지 두 개의 열이 포함 된 테이블이 있습니다 session_id, word_id를, 테이블은 session_word테이블에서 개수 (*) 인 열을 하나 추가하는 방법은 무엇입니까?

우리는 아래 SQL 쿼리로 두 개의 값을 얻을 수 있습니다 :

select count(*) as sum_word_freq from session_word 
select count(distinct session_id) as sum_session_freq from session_word 

내가

select word_id, count(*) as word_freq , count(distinct session_id) as word_session_freq 
    from session_word 
    group by word_id 
로 테이블을 설정해야

그러나 결과를 다른 두 열, 즉 sum_word_freqsum_session_freq과 함께 포함하고 싶습니다. SQL 쿼리에서 어떻게 실현할 수 있습니까?

select 
     word_id, 
     word_freq, 
     word_session_freq, 
     --the sum for all dataset 
     sum(word_freq)   over() as sum_word_freq, 
     sum(word_session_freq) over() as sum_session_freq 
from 
(
select word_id, 
     count(*)     as word_freq, 
     count(distinct session_id) as word_session_freq 
    from session_word 
    group by word_id 
)s; 
:

답변

1

당신이 다음 분석 함수를 사용하여 단일 쿼리에서 다른 그룹에 의해 집계를 원하는 경우

는 솔루션입니다