Hive 如何从表中添加一列作为计数(*)?

Hive 如何从表中添加一列作为计数(*)?,hive,hiveql,Hive,Hiveql,我有一个只包含两列的表格:session\u id,word\u id,表格是session\u 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 , cou

我有一个只包含两列的表格:
session\u id,word\u id
,表格是
session\u 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\u word\u freq
sum\u session\u 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;