Hello Frndz,
I have a table named product as shown below:
product_id product_name
1 AAA
1 BBB
1 CCC
2 PPP
2 QQQ
2 RRR
Now my output should be:
product_id product_name_1 product_name_2 product_name_3
1 AAA BBB CCC
2 PPP QQQ RRR
Answers were Sorted based on User's Feedback
Answer / tdguy
Hi,
Below query can be used assuming that there would not be
duplicates of product_names in the parent table and only
three product_names would be the output required.
SEL PRODUCT_ID,MIN(PRODUCT_NAME_1) AS PROD1,MIN
(PRODUCT_NAME_2) AS PROD2,MIN(PRODUCT_NAME_3) AS PROD3
FROM
(SEL PRODUCT_ID,PRODUCT_NAME,
ROW_NUMBER() OVER (PARTITION BY PRODUCT_ID ORDER BY
PRODUCT_NAME ASC) AS PRODRANK,
CASE WHEN PRODRANK=1
THEN PRODUCT_NAME END AS PRODUCT_NAME_1,
CASE WHEN PRODRANK=2
THEN PRODUCT_NAME END AS PRODUCT_NAME_2,
CASE WHEN PRODRANK=3
THEN PRODUCT_NAME END AS PRODUCT_NAME_3
FROM PRODUCT) A
GROUP BY 1;
If the above case is numeric, SUM should be used instead of
MIN.
| Is This Answer Correct ? | 7 Yes | 0 No |
Answer / yuvaevergreen
Hi,
Since the no of output columns is a variable, I think we
may have to write a SP or macro to get the desired output.
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / vaishnavi a
Thanks for ur response, i just gave a sample table with few
records, but in a real time scenario we have a table with
duplicates & there can be many products under a particular
prod_id.It is not that there should be only 3 products
under a prod_id , it could be even 50. wat could be an
optimised way of writing a query for this scenario??
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / vishvajeet mistry
We can also use Full outer join in this case.
sel
t1.pid,
t1.pn as pn1,
t2.pn as pn2,
t3.pn as pn3
from
(sel pid,pn
from prod
qualify rank() over (partition by pid order by pn)=1)t1
Full outer join
(sel pid,pn
from prod
qualify rank() over (partition by pid order by pn)=2)t2
On
t1.pid=t2.pid
Full outer join
(
sel pid,pn
from prod
qualify rank() over (partition by pid order by pn)=3)t3
on
t1.pid=t3.pid
order by 1 ;
Hope it helps :)
| Is This Answer Correct ? | 0 Yes | 0 No |
what are the uses of fact table and dimension table in banking project?
What are the functions involved in shared information architecture?
What happens in a conflict? How do you handle that?
which join mostly use in realtime?
How to Extract data from multiple legacy systems?
How to explain project Architecture and flow in teradata interviews?Can please anyone help on this? Am new to teradata.
0 Answers Infosys, Wells Fargo,
What is spool space and when running a job if it reaches the maximum spool space how you solve the problem?
We are migrating an oracle table into teradata, the volume of data is huge and partitioned (year wise list partition). How do i simulate the same in teradata.
in ur table contains the coloumns like deptno,sal empname then i want output as deptno subtotalofdept totalsal 10 3700 3700 20 3400 7100 like that
Explain vproc in teradata?
What is the purpose of joins in teradata and what are the available join types?
What is the opening step in basic teradata query script?