Home > database >  distinct of multiple columns snowflake
distinct of multiple columns snowflake

Time:07-19

I have a table called XYZ having 3 columns adb1, adb2, adb3.(All columns are of number type)

I want a query to return a distinct number from all these 3 columns as a single row.

For example:- Table XYZ

adb1 adb2 adb3
11 12 13
12 24 25
78 25 13

Now the query should return one single column having distinct values from all these columns i.e.

Result column
11
12
13
24
25
78

CodePudding user response:

UNION should achieve this but can be computationally expensive depending on how many you are performing and the amount of data it needs to de-dupe

Something like:

SELECT adb1 FROM xyz
UNION
SELECT adb2 FROM xyz
UNION
SELECT adb3 FROM xyz

CodePudding user response:

An alternative using flatten. The idea is to create an array using your columns and then flatten them up in multiple rows

select distinct t2.value::integer as new_col --cast it to appropriate data type
from your_table t1, lateral flatten(input=>[t1.adb1,t1.adb2,t1.adb3]) t2
  • Related