Этот тип операции обычно называется круговой.Многие крупные поставщики БД имеют какой-то специальный синтаксис, который выполняет его, но я склонен делать это, используя стандартный sql:
SELECT
country,
SUM(CASE WHEN clienttype = 'Client Type 1' THEN 1 END) as ClientType1,
SUM(CASE WHEN clienttype = 'Client Type 2' THEN 1 END) as ClientType2
FROM
#temp
GROUP BY country
Если бы вы запустили это без группировки и суммировали ключевые слова, вы бы получили набор результатов со странойстолбец (имеющий повторяющиеся значения) и столбец clienttype1, который содержит 1 каждый раз, когда тип клиента был 1, и ноль во всех других случаях, и столбец clienttype2, который был 1, когда тип клиента был 2, и ноль во все другие времена
Группировка по стране и суммирование наших столбцов со смешанным нулем / 1 дает число, равное нулю, считается равным нулю
На сервере sql вы увидите сообщение «нулевое значение удаляется агрегированной операцией», ноэто рекомендация и в этом случае желательно.Если это другие вы, вы можете привести случай, когда предложение «else 0» имеет тот же эффект.
Я мог бы также использовать COUNT вместо SUM, но для этого нужно действительно смешать 1 / ноль, потому что count будет считать значение 0 «счетным значением» и считать егокак 1. Нули имеют жизненно важное значение при использовании COUNT