首页 > 解决方案 > add_condition_to_sql_query

问题描述

我有一个包含预订行的表格,以及进行这些预订的教师(一名教师可以有很多预订)。

预订可以是以下两种类型之一:

类型 1:那些(only_payment = true OR from_lesson_id IS NOT NULL)

类型 2 : 和那些 (only_payment = false AND from_lesson_id IS NULL)

only_payment 是布尔值,from_lesson_id 可以为空或不为空

我执行了这个查询,它工作正常:

SELECT

bookings.id as booking, 
bookings.from_lesson_id,
bookings.only_payment,
bookings.teacher_id

FROM bookings


我想添加一个条件,只保留每种类型至少有一个预订的教师。我尝试有条件,按(bookings.teachers_id)分组,但它仍然无法正常工作。请问我该怎么办?

样本数据 :

预订 | 教师编号 | only_payment | from_lesson_id

333, 01, 真实, 空

334, 01, true, not null

335、01、假、空

336、02、假、空

337、02、假、空

在这里,教师 01 有两个类型 I 的预订和一个类型 2 的预订,而教师 02 有两个类型 2 的预订,并且没有类型 1 的预订。

因此,期望的输出是只保留教师 01 的预订:

预订 | 教师编号 | only_payment | from_lesson_id

333, 01, 真实, 空

334, 01, true, not null

335、01、假、空

标签: sqlpostgresqlgroup-byconditional-formattinghaving-clause

解决方案


推荐阅读