gpt4 book ai didi

sqlite - 将带有子查询的SQLite查询转换为Peewee语句

转载 作者:行者123 更新时间:2023-12-03 18:50:32 26 4
gpt4 key购买 nike

我有一个SQL语句可以满足我的需要,但是在将其转换为相关的Peewee语句时遇到了麻烦。这是我现在拥有的SQL,请注意,我现在正在使用子查询,但我不在乎这是哪种子查询。

select t.name,
count(a.type_id) as total,
(
select count(id)
from assignment a
where a.course_id = 7
and a.due_date < date()
and a.type_id = t.id
group by a.type_id
order by a.type_id
) as completed
from assignment a
inner join type t on t.id = a.type_id
where a.course_id = 7
group by a.type_id
order by a.type_id


这是我最接近Peewee陈述的地方。目前,我只是在查询中使用静态数字作为别名,以便在模板中使用一个值,因此请忽略该部分。

Assignment.select(
Type.name,
fn.Lower('1').alias('completed'),
fn.Count(Type.id).alias('total'),
).naive().join(Type).where(
Assignment.course==self,
).group_by(Type.id).order_by(Type.id)

最佳答案

您是否尝试过将子查询作为选择的一部分?

像这样吗

query = (Assignment
.select(
Type.name,
fn.COUNT(Type.id).alias('total'),
Assignment.select(fn.COUNT(Assignment.id)).where(
(Assignment.due_date < fn.DATE()) &
(Assignment.course == 7) &
(Assignment.type == Type.id)
).group_by(Assignment.type).alias('completed'))
.join(Type)
.where(Assignment.course == 7)
.group_by(Type.name))

关于sqlite - 将带有子查询的SQLite查询转换为Peewee语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27581826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com