Я пытаюсь вывести количество членов, у которых есть членство Basic и AAA в формате, который выглядит следующим образом:
#BASIC #AAA
----------- -----------
43 18
здесь мой код:
select count(club) as #Basic, count(club) as #AAA
from yrb_member
where club = 'Basic'
group by club;
Но я все равно получаю вывод:
#BASIC #AAA
----------- -----------
18 18
43 43
Как я буду исправлять это?
Данные базы данных - это все varchars:
insert into yrb_member (club, cid) values
('Basic',1),
Это работает почти во всех СУБД
select
sum(CASE WHEN club='Basic' THEN 1 ELSE 0 END) as #Basic
, sum(CASE WHEN club='AAA' THEN 1 ELSE 0 END) as #AAA
from yrb_member
where club in ('Basic', 'AAA');
если он доступен в РСУБД - это выглядит лучше
select
count(*) FILTER (WHERE club='Basic') as #Basic
, count(*) FILTER (WHERE club='AAA') as #AAA
from yrb_member
where club in ('Basic', 'AAA');