oracle 选择具有特定条件的用户ID

biswetbf  于 2022-11-03  发布在  Oracle
关注(0)|答案(2)|浏览(188)

我如何选择只有1个CA帐户和1个SA帐户的LINK_USER_ID。使用SQL查询时,有些用户有2个CA和1个SA,或者只有1个CA,或者只有1个SA。
注意:1个LINK_USER_ID可以链接到多个LINK_CIS_NO。
样本数据
| 链接_ODDS_否|链接_帐户_否|链接用户标识|链接CIS编号|链接帐户类型|
| - -|- -|- -|- -|- -|
| 小行星124770648|小行星3180879599940|小行星99134982|小行星3236| CA认证|
| 小行星124770649|小行星3180879599941|小行星99134982|小行星3236|服务协议|
| 小行星124770650|小行星3180879599942|小行星991|小行星323| CA认证|
| 小行星124770651|小行星3180879599943|小行星991|小行星3236|服务协议|
| 小行星124770|小行星3180879599944|小行星99134984|小行星323|管理中心|
| 小行星124770653|小行星3180879599945|小行星99134984|小行星3236478| CA认证|
| 小行星124770654|小行星3180879599946|小行星99134985|小行星32364| CA认证|
| 小行星124770655|小行星3180879599947|小行星99134985|小行星3236|服务协议|
| 小行星124770656|小行星3180879599948|小行星99134986|小行星3244879|服务协议|
预期结果
| 链接用户标识|
| - -|
| 小行星99134982|

z2acfund

z2acfund1#

有条件地按ID和计数聚合:

select link_user_id
from mytable
group by link_user_id
having count(case when link_acct_type = 'CA' then 1 end) = 1
   and count(case when link_acct_type = 'SA' then 1 end) = 1`.
5n0oy7gb

5n0oy7gb2#

select LINK_USER_ID
from table
where LINK_ACCT_TYPE in ('CA', 'SA')
group by LINK_USER_ID
having count(distinct LINK_ACCT_TYPE) = 2

该查询按LINK_USER_ID对数据进行分组,然后检查LINK_ACCT_TYPE是否有两个不同的值(CA和SA)。如果有,则该LINK_USER_ID将包括在结果中。

相关问题