Как посчитать количество участников, вывести результаты в сгруппированные таблицы, используя псевдонимы? - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь вывести число членов, имеющих базовое членство и членство 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

Как мне исправить это?

Все данные базы данных представлены в виде:

insert into yrb_member (club, cid) values
('Basic',1),

1 Ответ

0 голосов
/ 25 июня 2018

Это работает почти во всех РСУБД

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');

если доступно в RDBMS - это выглядит лучше

select 
  count(*) FILTER (WHERE club='Basic') as #Basic
, count(*) FILTER (WHERE club='AAA')   as #AAA 
from yrb_member
where club in ('Basic', 'AAA');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...