Come posso eseguire la seguente query SQL utilizzando SQLAlchemy?Filtraggio di un conteggio sql (*) con SQLAlchemy
SELECT COUNT (*)
FROM det_factura
WHERE company = 31
AND date::text LIKE '2011-05% ';
Come posso eseguire la seguente query SQL utilizzando SQLAlchemy?Filtraggio di un conteggio sql (*) con SQLAlchemy
SELECT COUNT (*)
FROM det_factura
WHERE company = 31
AND date::text LIKE '2011-05% ';
Se det_factura
è anche un oggetto mappato, allora questa query dovrebbe fare:
qry = (session.query(func.count(det_factura.id))
.filter(det_factura.company==31)
.filter(det_factura.date.like('2010-05%'))
)
Se è un esempio table
, quello seguente dovrebbe funzionare:
qry = select([func.count(det_factura.id)],
and_(det_factura.company==31,
det_factura.date.like('2010-05%')
)
)
Grazie. SQLSoup con cui lavoro, adattando questo codice a sqlsoup. – leonciokof
hmm .. ma cosa succede se non si dispone di un campo ID? come si ottiene semplicemente "contare (*)", possibilmente in presenza di altre cose nell'elenco di selezione (quindi non si può usare sqlalchemy .count())? – shaunc
@shaunc: puoi sempre fare 'func.count ('*')' per ottenere un'espressione SQL 'COUNT (*)'. – van
Nei SQL backend stai usando? – van