#sql #postgresql
#sql #postgresql
Вопрос:
Допустим, у меня есть следующая таблица:
| sku | id | value | count |
|-----|----|-------|-------|
| A | 1 | 1 | 2 |
| A | 1 | 2 | 2 |
| A | 3 | 3 | 3 |
Я хочу выбрать строки, которые не имеют одинакового количества для одного и того же идентификатора. Итак, мой желаемый результат:
| sku | id | value | count |
|-----|----|-------|-------|
| A | 3 | 3 | 3 |
Мне нужно что-то, что работает с Postgres 10
Комментарии:
1. Под «количеством» вы подразумеваете
count
столбец или количество строк?
Ответ №1:
Простой метод — это оконные функции:
select t.*
from (select t.*, count(*) over (partition by sku, id) as cnt
from t
) t
where cnt = 1;
Предполагается, что вы действительно имеете в виду комбинацию sku / id.