Group By и список не совпадают - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть таблица как под:

Col1        Col2                Col3    Col4                    Col5
1           50.9499411799115    Point   imp                     A
1           109.69487431133     Point   exp                     1
1           107.69487431133     Point   exp                     2
1           1019.69487431133    Point   exp                     B
2           51.5403193833315    Point   imp                     0
2           50.5403193833315    Point   exp                     3

Я хочу сгруппировать по Col1 и выбрать все те, в которых нет 'A' или 'B' в Col5

Я использовал приведенный ниже запрос для генерации вывода в MSSQL, но не получил правильный результат, может кто-то указать на мою ошибку

SELECT Col1
FROM table1
WHERE
    Col5 NOT LIKE('%A%')
or  Col5 NOT LIKE('%B%')
GROUP BY Col1;

Поэтому мой вывод должен быть

Col1 
2

1 Ответ

0 голосов
/ 05 ноября 2018

Проблема в том, что вы пытаетесь удалить одну строку на основе данных в другой, поэтому единственный способ сделать это - проверить на днях, например,

select Col1
from table1 D1
where not exists (select 1 from table1 D2 where D2.Col1 = D1.Col1 and (Col5 like ('%A%') or Col5 like ('%B%')))
group by Col1
...