如何从 table 添加一列,即计数(*)?
How to add one column which is the count(*) from the table?
我有一个 table ,它只包含两列: session_id, word_id
, table 是 session_word
我们可以得到两个值作为下面的 sql 查询:
select count(*) as sum_word_freq from session_word
select count(distinct session_id) as sum_session_freq from session_word
我已经建立了 table 作为
select word_id, count(*) as word_freq , count(distinct session_id) as word_session_freq
from session_word
group by word_id
但我想将结果包含在另外两列中:sum_word_freq
和 sum_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;
我有一个 table ,它只包含两列: session_id, word_id
, table 是 session_word
我们可以得到两个值作为下面的 sql 查询:
select count(*) as sum_word_freq from session_word
select count(distinct session_id) as sum_session_freq from session_word
我已经建立了 table 作为
select word_id, count(*) as word_freq , count(distinct session_id) as word_session_freq
from session_word
group by word_id
但我想将结果包含在另外两列中:sum_word_freq
和 sum_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;