Нет ограничений 1 на то, какие функции SQL можно вызывать с помощью func
. Приведенный пример из документации MySQL :
mysql> SELECT o_id, attribute, value FROM t3;
+------+-----------+--------+
| o_id | attribute | value |
+------+-----------+--------+
| 2 | color | red |
| 2 | fabric | silk |
| 3 | color | green |
| 3 | shape | square |
+------+-----------+--------+
4 rows in set (0.00 sec)
запрос:
SELECT o_id, JSON_OBJECTAGG(attribute, value)
FROM t3 GROUP BY o_id;
будет выражаться в SQLAlchemy Язык выражений SQL как:
select([t3.c.o_id, func.json_objectagg(t3.c.attribute, t3.c.value)]).\
group_by(t3.c.o_id)
1 На практике существуют некоторые ограничения. func
нельзя использовать, например, для генерации вызовов функций с использованием именованных обозначений.