Создание запроса с комбинацией CASE WHEN и GROUP BY

я пытаюсь создать таблицу, где я создаю столбцы с CASE WHEN, которые должны быть сгруппированы по кандидатам. Я пробовал это уже много раз и искал на форуме, но я не нашел решения.

SELECT History.ApplicantId
       ,MAX(Interested)
       from (
       SELECT  History.ApplicantId
               ,CASE WHEN (ActivityId = 88) THEN 1 END AS Interested
From History) a
GROUP BY History.ApplicantId

Итак, мой результат должен быть двумя столбцами. Первый - заявитель, а второй - если он заинтересовался. 1 или НУЛЬ.

Но я получаю «Не удалось связать составной идентификатор «History.ApplicantId».

Что я должен делать?

С наилучшими пожеланиями


person Matthias Hillebrand    schedule 08.12.2017    source источник
comment
Отредактируйте свой вопрос и предоставьте образцы данных и желаемые результаты. Запрос не имеет смысла.   -  person Gordon Linoff    schedule 08.12.2017


Ответы (1)


Мы можем просто выполнить агрегирование в одноуровневом запросе:

SELECT
    ApplicantId,
    MAX(CASE WHEN ActivityId = 88 THEN 1 END) AS Interested
FROM History
GROUP BY ApplicantId;

Это сообщит 1, если заявитель заинтересован, и NULL в противном случае.

person Tim Biegeleisen    schedule 08.12.2017
comment
Эй, это намного проще. Большое спасибо. :) - person Matthias Hillebrand; 08.12.2017