我面临一个具有挑战性的问题,我需要根据不包括最大值的重复列打印特定列中的所有字段
我的查询计划:
select event_no,
bs_id
from bs_bank_mast
where event_no in (select event_no
from bs_bank_mast
group by event_no
having count(*) > 1)
order by event_no ASC
我的输出:
event_no bs_id
1692163 40672
1692163 41974
1692163 40672
1692163 41974
1723264 67460
1723264 67499
1723264 68357
1723265 67929
1723265 67383
1723266 67735
1723266 67423
1723266 67969
1723266 68164
1723266 67501
event_no bs_id
1692163 40672
1723264 67460
1723264 67499
1723265 67929
1723266 67735
1723266 67423
1723266 67969
1723266 68164
所以基本上除了 bs_id 的最后一个最大值之外的所有内容都被打印出来
我试过的查询:
select event_no,
bs_id
from bs_bank_mast
where event_no in (select event_no
from bs_bank_mast
group by event_no
having count(*) > 1)
and event_no < max(bs_id)
我得到的错误是:
在这种情况下对聚合的使用不当
请您提供我需要的帮助。
您不能使用聚合的 WHERE 子句。相反,您可以将您的表与您的分组结果集连接起来并丢弃最大值。
dbfiddle在这里