SQLAlchemy & mdash; группа и счет уникальны с максимально возможным количеством запросов [дубликат]

Существует библиотека node.js, названная named-regexp , которую вы можете использовать в проектах node.js (в браузере путем упаковки библиотеки с помощью браузера или других сценариев упаковки). Тем не менее, библиотека не может использоваться с регулярными выражениями, которые содержат неименованные группы захвата.

Если вы считаете открывающие скобки для захвата в своем регулярном выражении, вы можете создать сопоставление между именованными группами захвата и нумерованными группами захвата в вашем регулярном выражении и может свободно смешиваться и сочетаться. Вам просто нужно удалить имена групп, прежде чем использовать регулярное выражение. Я написал три функции, которые демонстрируют это. См. Этот пояс: https://gist.github.com/gbirke/2cc2370135b665eee3ef

70
задан sth 28 July 2009 в 03:50
поделиться

3 ответа

Документация при подсчете говорит, что для запросов group_by лучше использовать func.count():

from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
108
ответ дан Dag Høidahl 17 August 2018 в 10:40
поделиться
  • 1
    и вот полный оператор для тех, кто использует свойство Table.query вместо session.query(): Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all() – jkukul 26 March 2018 в 23:33
  • 2
    @jkukul Это должен быть ответ сам по себе - я всегда задавался вопросом, как обойти это ограничение при выполнении подзапросов и захотеть использовать group_by и подсчитать.! – chris-sc 5 July 2018 в 12:03
  • 3
    @ chris-sc Я создал отдельный ответ, спасибо. – jkukul 5 July 2018 в 14:00

Вы также можете рассчитывать на несколько групп и их пересечение:

self.session.query(func.count(Table.column1),Table.column1, Table.column2).group_by(Table.column1, Table.column2).all()

В приведенном выше запросе будут возвращены подсчеты для всех возможных комбинаций значений из обоих столбцов.

20
ответ дан fccoelho 17 August 2018 в 10:40
поделиться
  • 1
    Спасибо за этот вопрос, подумав об этом, я нашел ответ на связанный с ним вопрос. ;-) – fccoelho 11 March 2011 в 18:11

Если вы используете свойство Table.query:

from sqlalchemy import func
Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()

Если вы используете метод session.query() (как указано в ответе минивэра):

from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
3
ответ дан jkukul 17 August 2018 в 10:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: