SQL查询,用于计算术语出现时术语出现的次数

时间:2014-04-17 23:42:45

标签: sql mariadb

我需要计算该术语出现的次数,只有它出现时才会出现。

我有一个如下所示的表:

document | term
a0000001 | n/a
a0000001 | for
a0000001 | nothing
a0000002 | lux
a0000002 | the
a0000002 | censoring
a0000003 | the
a0000003 | the
a0000003 | and

此查询返回每个文档中显示的术语的计数:

SELECT document, COUNT(term) AS term_count
FROM documentsx
WHERE term="the"
GROUP BY document;

document | term
a000002  | 1
a000003  | 2

此查询告诉我匹配的术语是否出现:

SELECT document, SUM(CASE WHEN term='the' THEN 1 ELSE 0 END) AS "the"
FROM documentsx
GROUP BY documents;

document | the
a000001  | 0
a000002  | 1
a000003  | 1

我正在寻找一种方法来组合这两个查询,以便我得到以下内容:

document | the
a000001  | 0
a000002  | 1
a000003  | 2

我正在使用MariaDB。

1 个答案:

答案 0 :(得分:1)

我不熟悉MariaDB,但在SQL Server中,我能够使用UNION来获得您想要的组合结果。