Удалите все не повторяющиеся строки на основе одного столбца в таблице SQL Server, где есть условия для нескольких столбцов для оператора select - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь извлечь данные из таблицы SQL Server, которая соответствует определенным критериям. Частью этого критерия является то, что в моем столбце может быть несколько строк с одними и теми же данными, и мне нужно, чтобы все эти строки возвращались ... мне не нужно, чтобы возвращаемые строки были разными.

Я хочу найти сеанс, который находится в указанном диапазоне дат c и соответствует одному из двух типов действий, причем их несколько, то есть для сеанса есть две или более строк.

Пример SQL запрос:

SELECT activity and message 
FROM myTable 
WHERE (date BETWEEN '1/1/2020' and '1/31/2020') 
  AND activity IN ('trace', 'info')

Sample Data

Не могли бы вы посоветовать, как я могу получить строки, которые соответствуют моим критериям нахождения в правильный диапазон дат и правильная активность, но только несколько строк. Мне не нужны данные, не соответствующие этим трем критериям.

Обновление до Body:

При создании примера запроса в моем первоначальном сообщении я не включил столбец метки. Таким образом, SELECT должен читать: «SELECT activity, label и message FROM myTable WHERE (date BETWEEN '1/1/2020' and '1/31/2020') AND activity IN ('trace', 'info')». Основываясь на данных выборки, я ожидал бы следующего результата:

 activity  message   label 
 --------  -------   -----
 trace     logged    1234 
 info      written   1234 

Метка «1234» - единственное значение, которое соответствует всем критериям: попадает в диапазон дат, соответствует значениям активности и имеет несколько строк.

1 Ответ

3 голосов
/ 07 мая 2020

Имея ограниченную информацию, я мог только сделать безумное предположение и посмотреть, работает ли у вас что-то подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...