Различные условия (аналогично IF) + уникальные значения - PullRequest
0 голосов
/ 09 июля 2019

Мне нужно отфильтровать данные, используя различные условия.Во-первых, мне нужно ставить в очередь, если значения в одном столбце (столбце d) уникальны, если значения в другом столбце (c) больше 1.

Предположим, что столбец a, b, c, d

Так что я не хочу никаких записей, где c больше 1, а d имеет неуникальные значения.

Select TOP 100 * From table
Where (a = 'Max' AND b = '2019') -- just an additional filter, which always applies
    AND (c = 1 -- if c is one, that is fine
            OR (c > 1 AND -- here I want to check if c is bigger than 1 AND if d is unique; but thats the part I need help with
        );

Заранее большое спасибо!

1 Ответ

0 голосов
/ 09 июля 2019

Создайте CTE, где вы подсчитываете различные значения столбца d и используете его в предложении WHERE:

with cte as (
  select count(distinct d) counter from tablename
)
...........................................
Where ....(c > 1 AND (select counter from cte) = 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...