我想用每行中另一列的最大值创建一个新列,但是当我使用MAX()
函数时,它仅返回一行。
我希望每行具有相同的值。从没有MAX
功能的第一个代码中,我得到533行,然后当我使用MAX()
时,我仅得到一行。
SELECT
ap.id,
ap.name,
apc.closing_prob_c
FROM a_assigned_prospect ap
LEFT JOIN a_assigned_prospect_cstm apc ON apc.id_c=ap.id
SELECT
ap.id,
ap.name,
apc.closing_prob_c,
MAX(apc.closing_prob_c)
FROM a_assigned_prospect ap
LEFT JOIN a_assigned_prospect_cstm apc ON apc.id_c=ap.id
我知道您希望新列在[[整个结果集上具有apc.closing_prob_c
的最大值,同时仍返回原始的533行。
select
ap.id,
ap.name,
apc.closing_prob_c,
max(apc.closing_prob_c) over() max_closing_prob_c
from a_assigned_prospect ap
left join a_assigned_prospect_cstm apc on apc.id_c = ap.id
在早期版本中,通常会使用子查询:
select ap.id, ap.name, apc.closing_prob_c, ( select max(apc1.closing_prob_c) from a_assigned_prospect_cstm apc1 where exists ( select 1 from a_assigned_prospect ap1 where ap1.id = apc1.id_c ) ) max_closing_prob_c from a_assigned_prospect ap left join a_assigned_prospect_cstm apc on apc.id_c=ap.id