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

Snowflake多列去重查询:提取多列所有唯一值

提取多列唯一值为单列的Snowflake查询

我有一张名为XYZ的表,包含adb1、adb2、adb3三列(所有列均为数值类型)。需要编写Snowflake查询语句,提取这三列中的所有唯一值,返回为单列结果集。

示例输入

adb1adb2adb3
111213
122425
782513

期望输出

Result column
11
12
13
24
25
78

解决方案

可以通过两种简洁方式实现需求:

方法1:UNION ALL + DISTINCT

先通过UNION ALL将三列数据合并为单列,再用DISTINCT去除重复值:

SELECT DISTINCT value AS "Result column"
FROM (
    SELECT adb1 AS value FROM XYZ
    UNION ALL
    SELECT adb2 AS value FROM XYZ
    UNION ALL
    SELECT adb3 AS value FROM XYZ
) AS combined_values;

方法2:UNPIVOT操作

利用Snowflake的UNPIVOT语法直接将多列转为单列,再去重,列数较多时该方式更高效简洁:

SELECT DISTINCT value AS "Result column"
FROM XYZ
UNPIVOT (
    value FOR col IN (adb1, adb2, adb3)
) AS unpivoted_data;

两种方法均能输出符合要求的单列唯一值结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 01:09:28