我正在编写一个SQL查询来收集贷款数据集的摘要统计信息。我希望获得发生的第一笔非零付款和账面月额(mob
)。但是,由于SQL的限制,我不能使用mob=initial_payment_mob_nz
,所以我试图将表达式复制到定义initial_payment_amount_nz
的case语句中。
我想知道嵌套条件聚合是否可行(以及如何相应地构建查询)。我可以创建一个单独的查询,然后加入该查询,但是鉴于我正在使用的数据集,这在计算上会非常昂贵。如果我可以保持在当前查询的约束范围内,那将是理想的选择。
预先感谢
SELECT
primary_key,
...,
MIN(
CASE WHEN monthly_payment_amount > 0
THEN mob ELSE null END)
AS initial_payment_mob_nz,
CASE WHEN(
mob=MIN(
CASE WHEN monthly_payment_amount > 0
THEN mob ELSE NULL END)
THEN monthly_payment_amount ELSE NULL END)
AS initial_payment_amount_nz
FROM
table
GROUP BY
primary_key