sqlite3 diffrent WHERE для нескольких COUNT (*) - PullRequest
0 голосов
/ 21 июня 2020

Я делаю таблицу медалей, например это .

У меня есть таблица с. Countrycode, medalColor и medalId.

Моя цель - получить тот же результат, что и на картинке, но я не могу заставить работать несколько операторов WHERE.

Это работает с одним государственным деятелем, но тогда я не знаю, как их собрать. одиночный оператор

1 Ответ

0 голосов
/ 21 июня 2020

Предполагая, что столбец medalColor содержит такие значения, как 'Gold', 'Silver' и 'Bronze', вы можете сделать это с помощью условного агрегирования:

select c.CountryName Land, 
       coalesce(t.Gold, 0) Goud,
       coalesce(t.Silver, 0) Zilver,
       coalesce(t.Bronze, 0) Brons
from country c  
left join (
  select CountryCode,
         sum(medalColor = 'Gold') Gold,
         sum(medalColor = 'Silver') Silver,
         sum(medalColor = 'Bronze') Bronze
  from medaille
  group by CountryCode
) t on t.CountryCode = c.CountryCode
order by Goud desc, Zilver desc, Brons desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...