依赖其他表COUNT的SQL查询?- SQLAlchemy
我需要一个查询,可以从表A中返回记录,这些记录在表B中有超过一定数量的记录。这个查询还需要能够与可能应用于表A的其他筛选条件一起使用。
举个例子:
我有一个人和预约的表。我想找出所有参加过5次或更多预约的人。这个查询还必须支持在人员表上的额外筛选条件,比如年龄大于18岁。
编辑 -- 解决方案
subquery = db.session.query(Appointment.id_person,
func.count('*').label('person_count')) \
.group_by(Appointment.id_person).subquery()
qry = db.session.query(Person) \
.outerjoin((subquery, Person.id == subquery.c.id_person)) \
.order_by(Person.id).filter(subquery.c.person_count >= 5).filter(Person.dob <= '1992-10-29')
2 个回答
0
这段内容是关于编程问题的讨论,主要是在解决某个特定的技术难题。虽然具体问题没有被提到,但可以看出大家在分享自己的经验和解决方案。
在编程的世界里,遇到问题是非常常见的。很多时候,其他开发者会在网上分享他们的解决办法,这样可以帮助更多的人。这个讨论的重点就是如何找到合适的解决方案,以及在遇到类似问题时应该注意哪些细节。
总之,编程过程中遇到困难是正常的,关键是要善于寻求帮助和学习他人的经验。
SELECT Person.PersonID, Person.Name
FROM Person INNER JOIN Appointment
ON Person.PersonID = Appointment.PersonID
GROUP BY Person.PersonID, Person.Name
HAVING COUNT(Person.PersonID) >= 5
1
使用一个子查询:
SELECT * from person
WHERE PersonID IN
(SELECT PersonId FROM appointments
GROUP BY PersonId
HAVING COUNT(*) >= 5)
AND dob > 25