I have a ID column with different values in it for a particular attribute. I wish to convert the 4 rows into 1 row. There are multiple records
UNIQID | NAME | AGE | SOURCE
123 | John | 25 | StoreA
928 | John | 25 | StoreB
456 | John | 25 | StoreC
528 | John | 25 | StoreD
I need the output as below -
UNIQID_A | UNIQID_B | UNIQID_C | UNIQID_D | NAME | AGE
123 | 928 | 456 | 528 | John | 25
I manged to reach the below result by using the sql query but I am not sure how to roll up these values into 1
SELECT CASE WHEN Source = 'StoreA' THEN UNIQID END AS UNIQID_A,
CASE WHEN Source = 'StoreB' THEN UNIQID END AS UNIQID_B,
CASE WHEN Source = 'StoreC' THEN UNIQID END AS UNIQID_C,
CASE WHEN Source = 'StoreD' THEN UNIQID END AS UNIQID_D ,
ROW_NUMBER() OVER (PARTITION BY NAME ORDER BY AGE) AS ROWNO,
*
FROM Table
Output of the above query as
UNIQID_A | UNIQID_B | UNIQID_C | UNIQID_D | NAME | AGE | ROWNO
123 | NULL | NULL | NULL | John | 25 | 1
NULL | 928 | NULL | NULL | John | 25 | 2
NULL | NULL | 456 | NULL | John | 25 | 3
NULL | NULL | NULL | 528 | John | 25 | 4
Appreciate your help.