Я бы рекомендовал использовать row_number()
:
select sum(pax)
from (select t.*,
row_number() over (partition by id_user order by pax) as seqnum
from t
) t
where seqnum = 1;
row_number()
, что дает вам гибкость при , какое значение использовать (в этом случае выбирается минимальное значение pax
),Это также позволяет вам включать другую информацию, такую как общее количество строк.
Примечание. Если столбец, такой как pax
, повторяется в разных строках, свидетельствует о том, что ваши данные не нормализованы.Иногда это происходит при работе со сводными таблицами.Однако чаще всего это указывает на проблему с моделью данных, которая должна быть исправлена наличием таблицы с одной строкой на значение id_user
и pax
.