这是我正在做的工作的简化版本,我得到了以下代码:
'代码1'
'代码2'
'代码3'
我被要求找出我们数据库中每一个代码都有多少个案例。
这些代码都可以在casegroup表中找到,还有许多其他代码,但我只需要知道上面代码的编号。
我正在使用的当前sql:
SELECT
cg.code_typ as [code type]
,COUNT(*) as [Total] -- 62637
FROM
CaseGroup cg
WHERE
cg.code_typ IN ('code1', 'code2', 'code3')
GROUP BY
cg.code_typ
我的问题是,如果代码类型的计数为0,则会从结果集中跳过该代码类型。我想一个结果集,其中列出了所有三个代码,即使计数是0。所以理想的情况是这样的:
CodeType | Num of cases
code1 | 1
code2 | 0 (or blank)
code3 | 3
我目前收到的结果如下:
CodeType | Num of cases
code1 | 1
code3 | 3
实际上,我已经得到了大约100种不同的代码类型,表中有150多种不同的代码类型和超过100万个案例,这就是为什么从结果集中跳过代码类型会让人非常沮丧的原因。
我尝试过将不同的代码添加到temp表中,然后将temp表连接到查询中,但似乎仍然无法得到所需的结果。我相信有一个简单的解决办法,如果有人能提供它,将不胜感激。
如果有任何额外的信息,我可以提供或更好的标题这个问题,请让我知道:)
1条答案
按热度按时间uajslkp61#
你可以使用
left join
--在构建了一个你真正想要的所有代码的列表之后。这使用了
UNION ALL
,并非所有数据库都支持。但是类似的东西可以用在你正在使用的任何数据库中。