Выбор первой из множества строк с помощью SQLAlchemy Core - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь извлечь определенные строки из базы данных MSSQL.Для данной комбинации DistCode и RtrId я хочу выбрать только первую строку в таблице с самой поздней датой.Таблица имеет 5 столбцов - DistCode (с 7-значным вводом), RtrId (с 4-значным вводом), X (w / String), Class (w / String) и CreatedDate (w / yyyy-mm-dd).Извините, мое форматирование - отстой - я пытаюсь сделать это в первый раз.

Из приведенной ниже таблицы в идеале я бы хотел выбрать только строку № 2, т. Е. Поскольку она имеет самую последнюю дату, а также она будет последовательно первойсреди вариантов CreatedDate.

DistCode    RtrId   X   Class   CreatedDate
1001885     5085    GT  BR      16-07-17

Данные таблицы выглядят так:

DistCode    RtrId   X   Class   CreatedDate
1001885     5085    GT  BR  2016-03-05
1001885     5085    GT  BR  2016-07-17
1001885     5085    GT  OT  2016-07-17
1001885     5085    GT  BR  2016-05-05

dr1=select([dr.c.DistCode, dr.c.RtrId, dr.c.X, dr.c.Class, func.max(dr.c.CreatedDate).label('latest_Date')]).group_by(dr.c.DistCode, dr.c.RtrId, dr.c.X , dr.c.Class).distinct()

Используя func.max в ядре SQLAlchemy, я могуОтфильтруйте до строк 2 и 3, но как мне восстановить только строку №2.Пожалуйста, предоставляйте входные данные, используя только SqlAlchemy Core.

1 Ответ

0 голосов
/ 16 февраля 2019

Я подумал, что, вероятно, не очень эффективный способ сделать это, сначала преобразовав базу данных sql в фрейм данных pandas, а затем с помощью метода groupby и first () отфильтровать мои данные.

Мне бы только хотелось, чтобы в SQL была первая опция func.first ().

Для всех, кто помогал редактировать мой вопрос, и для тех, кто пытался взломать его в ядре SQLAlchemy.

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