【发布时间】:2024-05-18 16:45:02
【问题描述】:
如果我有如下表格:
|**Entry**-------**Name**--------**Date**------------------**Boolean**|
| 1.-----------Car-----------2019-12-01----------True|
| 2.-----------Car-----------2019-12-03----------False|
| 3.-----------Bus-----------2019-12-05----------False|
| 4.-----------Bus-----------2019-12-11----------False|
如果 Boolean 列为 true,或者如果布尔值为 false,则我想选择具有不同 Name 的行,或者如果布尔值为 false,则选择日期最早的行。所以对于 car 条目我想选择第一行,因为它的布尔值是真的(所以我可以忽略所有其他条目)和 bus 条目我想要选择最后一行,因为它的两个布尔值都是错误的,所以我想选择最早的日期(最接近当前日期)。
编辑:预期输出
| 1.-----------汽车------------2019-12-01----------真|
| 4.-----------公交车------------2019-12-11----------假|
【问题讨论】:
-
请添加更多数据,例如您的当前输出和预期输出。
-
如果还有另一行用于 TRUE 的 Car - 您会选择哪一行?
-
您的查询分为两部分,因此您可以分别为这两种情况编写查询并将它们合并。因为使用“CASE WHEN ...THEN..”作为单个查询写入每一列对于读者和作者来说都更加复杂。
-
car 和 true 只能是一排。所以这就是为什么当我们读取一行时我们选择它。如果它不是真的,那么我们看看日期。
标签: sql database google-bigquery