Я буду использовать структуру таблицы на Эта страница
class Book(Base):
__tablename__ = "books"
id = Column(Integer,Sequence('book_seq'),primary_key=True)
name = Column(String(50))
time_added = Column(DateTime, default=datetime.datetime.now)
Скажем, у меня есть эти книги, добавленные в таблицу:
- day1, 1: 00
- день1, 2: 00
- день2, 1: 00
- день2, 2: 00
- день2, 3: 00
Как сделать запрос, который отфильтровывает строки 1 и 3, в которых записывается первая книга, добавленная в тот день?
Я пытался
Book.query.order_by(Book.date_added).\
group_by(db.func.date(Book.date_added, "start of day"))
Но на самом деле этодает последний результат каждого дня, что неправильно.И теперь я понятия не имею, что я могу сделать, потому что документ и пример sqlalchemy настолько ограничены.
Пожалуйста, помогите мне выяснить, в чем проблема, или скажите мне правильный запрос, большое спасибо.
Редактировать:
Спасибо за предложения по уточнению.
Используемый мной бэкэнд базы данных: sqlite
.
А для входов и выходов проблемы:
Таблица books
содержит много книг, добавленных в разное время разных дней (разные time_added
).И я хочу отфильтровать книги, которые были первыми в те дни.Пусть дни будут группами, и выберите книгу с самым ранним добавлением времени в группе.