python - 将连接表限制为 4 行并使用 postgresql 和 sqlalchemy 以 json 格式返回结果
问题描述
到目前为止,我还没有能够通过error aggregate function calls cannot contain window function calls
并且我还没有找到一种方法来限制不会触发该错误的连接表。
我已经尝试func.count(Video.id).label('rn')
代替func.row_number().over(partition_by=role.c.movie_id).label('rn')
它给我错误:aggregate function calls cannot be nested
并将 Actor 表移动到它自己的子查询中,这给了我错误AttributeError: 'Alias' object has no attribute 'type'
sub_query = db.session.query(
func.json_build_object(
'movie_name', Movie.movie_name,
'movie_year', Movie.year,
'movie_description', Movie.description,
'Actors', func.array_agg(
func.json_build_object(
'actors_name', Actor.name,
'actors_age', Actor.age,
'rn', func.row_number().over(partition_by=role.c.movie_id).label('rn')
)
)
)
).group_by(Movie.movie_name, Movie.year, Movie.description, role.c.movie_id)\
.join(role, (role.c.movie_id == Movie.id)).join(Actor, (role.c.actor_id == Actor.id)).subquery()
query = db.session.query(sub_query).filter(text('rn <= 4'))
解决方案
推荐阅读
- azure - 将标志传递给 Azure aci 中的 docker
- codenameone - 地图
转换为地图 我有一张地图
Map<String, String[]> newMetaData = new LinkedHashMap();
我用这样的数据填充:
newMetaData.put( ((String) elm.get("compa
- python - 在嵌套函数中,我想调用内部函数
- jquery - jquery slideToggle 不会回到原始设置
- ios - 如何解决问题?我在正文中给出了描述
- javascript - 将 Android 或 IOS 上的套接字连接到 Sails js
- bash - 从终端执行 python 脚本,从文件夹读取输入文件并将输出文件写入另一个文件夹
- azure - Azure 逻辑应用 - 根据已启动的运行禁用/限制
- scala - ScalaTest:是否可以结合 AsyncWordSpec 和 GuiceOneAppPerSuite
- i3 - 如何按特定顺序自动启动程序?