#sql #sql-server #select #case
#sql #sql-сервер #выберите #случай
Вопрос:
мне нужна помощь для создания запроса
Текущая ситуация:
Выходная таблица содержит идентификаторы и уровни. Каждый идентификатор может отображаться несколько раз.
Проблема:
Теперь я хочу знать, отображается ли уровень 1 для идентификатора, если да, я хочу пометить его как номер 1. Если идентификатор имеет только уровень 2 или ноль, просто отметьте его как номер 0.
Выходные данные могут быть взяты из таблицы ниже.
Ответ №1:
Используйте агрегацию:
select id,
max(case when level = 1 then 1 else 0 end) as flag
from t
group by id;
Комментарии:
1. @FlEx .
case
, , возвращает1
только тогда, когдаlevel
имеет значение1
.max()
Суммируется по всем строкам для данногоid
.