Я пытаюсь подсчитать, сколько раз значение встречается в одном столбце, сгруппированном по идентификатору. Вот пример набора данных:
ID Yes_or_No
1 Yes
1 No
2 Yes
3 Yes
4 Yes
4 No
5 Yes
Общая идея заключается в том, что если я подсчитываю различные значения для некоторого идентификатора, если счет больше единицы, то я могу создать новый столбец, который называет его «Возможно» для случаев, когда какой-то идентификатор принимает как «Да», так и «Да». «Нет» значения. Вот что я написал изначально, но не работает:
SELECT ID,
CASE WHEN COUNT(DISTINCT Yes_or_No)>1 AS 'Maybe'
ELSE Yes_or_No
END AS YesNoMaybe
FROM db
GROUP BY 1;
Это часть большого общего запроса, поэтому в идеале я хотел бы иметь возможность использовать Count в операторе Case, а не подзапрос в операторе FROM для экономии памяти. Другие обходные пути приветствуются.