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

KDB+自连接查询:筛选t=A与其他t的无重复共同值

A MT
A RX
B SD
B RX
A RX
C SD

### 需求
通过自连接筛选出`t=A`与其他`t`的共同`value`,结果需去重,期望输出:

t value

A RX
B RX

### 自连接实现方案
可以通过自连接关联表,先定位A和其他t共享的value,再筛选对应记录并去重:

#### 写法一:子查询定位共同值后筛选
```sql
SELECT DISTINCT t, value
FROM your_table
WHERE value IN (
    SELECT a.value
    FROM your_table a
    JOIN your_table b ON a.value = b.value
    WHERE a.t = 'A' AND b.t != 'A'
)
AND t IN ('A', (SELECT DISTINCT b.t FROM your_table a JOIN your_table b ON a.value = b.value WHERE a.t='A' AND b.t!='A'))
ORDER BY t;

写法二:自连接匹配后合并结果

SELECT DISTINCT a.t, a.value
FROM your_table a
JOIN your_table b ON a.value = b.value
WHERE a.t = 'A' AND b.t != 'A'
UNION
SELECT DISTINCT b.t, b.value
FROM your_table a
JOIN your_table b ON a.value = b.value
WHERE a.t = 'A' AND b.t != 'A';

两种写法核心逻辑一致:先通过自连接找到A和其他t共有的value,再提取对应t的记录并去重,最终得到符合要求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 02:30:57