【发布时间】:2022-12-07 08:27:21
【问题描述】:
我需要有条件地能够在子选择中获取最小日期值,但是我无法这样做,因为查询希望我将值包含在我的 group by 语句中。
我有一个从子选择中选择的选择语句:
SELECT DISTINCT
Begin_Date
FROM
(
SELECT DISTINCT
CASE WHEN (id IS NOT NULL) THEN MIN (start_date)
ELSE initial_date
END AS Begin_Date
FROM ...
)
GROUP BY
Begin_Date
上面的查询不允许我按 begin_date 分组,因为我在子选择中有 MIN 聚合,但是如果 id 不为空,我仍然需要一种方法来获取最小值 start date,或者如果 id 为空,则为非聚合 initial_date。
有没有办法解决?
【问题讨论】:
-
在寻求 SQL 帮助时,minimal reproducible example 是一个很好的开始。
-
使用两个单独的查询,一个用于空 ID,另一个用于非空 ID。然后将它们与 UNION 结合起来。
标签: mysql sql subquery aggregate-functions