sqlalchemy включить всю строку в список при группировке
От: qtprogger  
Дата: 09.01.21 19:49
Оценка:
Имеется табличка
> select * from "Book";
 id |    date    | title | author |   genre    
----+------------+-------+--------+------------
  1 | 2019-01-01 | AAA   | B      | fantastic
  2 | 2019-01-02 | BBB   | C      | fantastic
  3 | 2019-01-02 | 1111  | 2      | technology
  4 | 2019-01-02 | 3333  | 4      | technology
  5 | 2019-01-02 | 7777  | 88     | technology


session.query(Book.genre, func.array_agg(Book.id, type_=ARRAY(Integer))).group_by(Book.genre)
# ('fantastic', [1, 2])
# ('technology', [3, 4, 5])

Помогите сформировать агреггирующую функцию так, чтобы в списках находились не идентификаторы, а строки из Book целиком
# ('fantastic', [(1, 2019-01-01, AAA, B), (2, 2019-01-02, BBB, C)])
# ('technology', [(3, 2019-01-02, 1111, 2), (4, 2019-01-02, 3333, 4), (5, 2019-01-02, 7777, 88)])
sqlalchemy python orm groupby
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.