You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

高效筛选满足多PARTNER且ADDRS_NUM不同的ACCOUNT的SQL方法

解决方案:筛选符合条件的ACCOUNT

数据示例

ACCOUNTPARTNERADDRS_NUM
HL1242341ASD123
HL1242341SDF234
HL124234NSDF234
HG22545BVQWE345
HG22572AAQWE345
UY1508846CCC204

需求说明

需要筛选出同时满足以下两个条件的ACCOUNT:

  • 该ACCOUNT关联多个不同的PARTNER
  • 该ACCOUNT下的ADDRS_NUM存在不同值

示例数据中仅HL124符合要求。

原查询问题分析

你之前写的窗口函数查询存在两个核心问题:

  1. 未使用DISTINCT,COUNT()统计的是总行数而非不同值的数量,无法判断是否存在多个不同的PARTNER或ADDRS_NUM
  2. 窗口函数会为每一行返回统计结果,导致数据量冗余,不仅结果不符合预期,还会增加查询耗时

高效SQL解决方案

使用GROUP BY配合聚合函数直接按ACCOUNT分组统计,只返回符合条件的账户,效率更高:

SELECT ACCOUNT
FROM your_table_name
GROUP BY ACCOUNT
HAVING COUNT(DISTINCT PARTNER) > 1 
   AND COUNT(DISTINCT ADDRS_NUM) > 1;

优化建议

如果表数据量较大,可以给(ACCOUNT, PARTNER)和(ACCOUNT, ADDRS_NUM)创建复合索引,让数据库直接通过索引统计不同值的数量,避免全表扫描,进一步提升查询速度。

内容的提问来源于stack exchange,提问作者team 9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:53:32