我被困在一项运动中,我需要计算对行星的独特访问总量,但如果行星是月球(maan),则应计算两次。客户编号也应为121
select case
when objectnaam = 'Maan' then count(objectnaam)
else count(distinct objectnaam)
end as aantal_bezoeken
from klanten inner join deelnames on klanten.klantnr = deelnames.klantnr
inner join reizen on deelnames.reisnr = reizen.reisnr
inner join bezoeken on reizen.reisnr = bezoeken.reisnr
where klanten.klantnr = 121
group by objectnaam
它给了我这个结果
aantal_bezoeken
1
4
1
1
但结果应为
aantal_bezoeken
7
我只需要将所有这些值加在一起,但我不知道如何, 或者可能有一个更简单的解决方案。它应该没有子查询
答案 0 :(得分:1)
试试这个:
select sum(aantal_bezoeken) as aantal_bezoeken from
(select case
when objectnaam = 'Maan' then count(objectnaam)
else count(distinct objectnaam)
end as aantal_bezoeken
from klanten inner join deelnames on klanten.klantnr = deelnames.klantnr
inner join reizen on deelnames.reisnr = reizen.reisnr
inner join bezoeken on reizen.reisnr = bezoeken.reisnr
where klanten.klantnr = 121
group by objectnaam) as a