Выберите строку, которая имеет меньшее значение из строки - PullRequest
0 голосов
/ 04 июня 2019

Название моего вопроса может сбивать с толку, но вот что я пытаюсь сделать, у меня есть запрос:

select * from mytable where days between 1 and 21 

Я получаю 7 записей для этого. В этих записях есть один пользователь, у которого есть 2 класса, которые находятся в 21 и 7, я пытаюсь использовать вторую запись в качестве своей записи, чтобы достичь день до 21, чтобы он мог отправлять электронную почту. Поскольку у этого пользователя есть два класса, я хочу, чтобы его последний класс считался игнорирующим первый.

Невозможно использовать группу, потому что есть некоторые поля, которые отличаются, и их нельзя удалить, как ID, teacher и т. Д.

Второй сценарий: у пользователя может быть запущен только один класс за раз, так что, вероятно, в этом случае мой запрос работает нормально

1 Ответ

2 голосов
/ 04 июня 2019

В ваших данных у вас есть имя столбца ID, я имею в виду, что этот идентификатор позволяет вам определить, какой из них является последним.

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

SELECT *
FROM ( SELECT *, ROW_NUMBER()  OVER (PARTITION BY EmailAddress ORDER BY ID DESC) as rn
       FROM yourTable
     ) as t
WHERE t.rn = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...