SQL查询从2列计算不同的计数

时间:2017-10-28 00:55:11

标签: sql sql-server database

我有一个名为table

的SQL表
Document    Word
-------------------
doc1    Hello
doc1    Hi
doc1    Welcome
doc1    Hello
doc2    Welcome
doc2    Welcome
doc3    Hi
doc3    Hello
doc3    Good Luck

这意味着我有文档列表,每个文档都包含一些单词,每个文档的每个单词都有raw,如果在同一个文档中出现两次单词,我将有2个raw。 我希望获得一个不同单词列表,其中包含出现的文档数量,无论出现多少次。 所以这个表的输出应该是

Hello: 2 --> which means it appeared in 2 documents
Hi: 2
Welcome: 2
Good Luck: 1

任何人都可以帮我写一些会返回此结果的查询吗?

1 个答案:

答案 0 :(得分:3)

您想要count(distinct)

select word, count(distinct document)
from t
group by word;