を選択しSQLAlchemyの私はどのようにresource_group_idとlast_modified列だけを選択できますか?私が欲しいものをSQLでは、MAX、GROUP_BYとORDER_BY
はこれです:
SELECT resource_group_id, max(last_modified) AS max_1
FROM resource GROUP BY resource_group_id ORDER BY max_1 DESC
を選択しSQLAlchemyの私はどのようにresource_group_idとlast_modified列だけを選択できますか?私が欲しいものをSQLでは、MAX、GROUP_BYとORDER_BY
はこれです:
SELECT resource_group_id, max(last_modified) AS max_1
FROM resource GROUP BY resource_group_id ORDER BY max_1 DESC
model.Session.query(
model.Resource.resource_group_id, func.max(model.Resource.last_modified)
).group_by(model.Resource.resource_group_id).order_by(
func.max(model.Resource.last_modified).desc())
あなたはすでにそれを得たが、私は将来の参考のために元のクエリで何が起こっているかを説明しようとするでしょう。
SELECT resource.resource_group_id AS resource_group_id,
resource.extra_column1 AS extra_column1,
resource.extra_column2 AS extra_column2,
...
count(resource.resource_group_id) AS max_1
GROUP BY resource_group_id ORDER BY max_1 DESC;
このウォン」:SQLAlchemyの中
あなたがあなたの元のクエリは次のようになりますので、それは、生成されたSQL SELECT文のリソーステーブルの各列の一覧が表示されますquery(model.Resource, ...)
、モデル参照を指定した場合GROUP BYで作業します。
これを避ける一般的な方法は、クエリメソッドに明示的に選択する列を指定することです。.query(model.Resource.resource_group_id)