I'm relatively new to coding and SQL so please bear with me.
I'm currently working on a query and I have no idea how to get the infinite loop to stop without using a case statement. When I use the case statement I get each value on its own row rather than the values all together in the combination they're supposed to be in.
Case statement SQL
select
    CASE
        When Attribute_id = '5024923' Then attribute_value
    END Page_Name,
    CASE
        When Attribute_id = '5024925' Then attribute_value
    END Site_Name,
    CASE
        When Attribute_id = '5024924' Then attribute_value
    END Last_Touch_Channel,
    count(distinct MASTER_CONTACT_ID) known_contact_count,
    count (distinct visitor_id) total_contact_Count,
    ACTION_DATE
    from Adobe_Analytics_Staging
    where ATTRIBUTE_ID in ('5024925','5024924','5024923')
    group by ATTRIBUTE_ID, ACTION_DATE, ATTRIBUTE_VALUE
Example: Error with Case statement:
| Column A | Column B | Column C | 
|---|---|---|
| value1 | NULL | NULL | 
| NULL | value2 | NULL | 
| NULL | NULL | value3 | 
When in the data it is value1, value2, value3 on the same row.
So I'm trying a new avenue. I suspect the loop is because I'm linking back to the table so many times but I have limited the amount of results to the best of my ability to reduce the amount of records being sent through. Each query works and works fast individually. It's collectively that it slows down a ton.
The reason for joining to the table so many times is because I have to distinguish different types of values within one column.
Note: Not sure if it's relevant but the different values in the table correlate to a specific id number within that that table. Attribute value and attribute ID are different columns
For example in Table A the column looks like this
| Column | 
|---|
| A | 
| B | 
| C | 
I have to make it look like this:
| Column 1 | Column 2 | Column 3 | 
|---|---|---|
| A | B | C | 
select 
a.ATTRIBUTE_VALUE,
b.ATTRIBUTE_VALUE,
c.ATTRIBUTE_VALUE,
count(distinct aas.MASTER_CONTACT_ID) known_contact_count,
count (distinct d.visitor_id) total_contact_Count,
aas.ACTION_DATE
from Adobe_Analytics_Staging aas
        left join (select ATTRIBUTE_VALUE, VISITOR_ID from Adobe_Analytics_Staging
        where Attribute_id = '5024923') a on a.VISITOR_ID = aas.VISITOR_ID
        left join (select ATTRIBUTE_VALUE, VISITOR_ID  from Adobe_Analytics_Staging
        where Attribute_id = '5024925') b on b.VISITOR_ID = aas.VISITOR_ID
        left join (select ATTRIBUTE_VALUE, VISITOR_ID  from Adobe_Analytics_Staging
        where Attribute_id = '5024924') c on c.VISITOR_ID = aas.VISITOR_ID
        inner join (select visitor_id from Adobe_Analytics_Staging
                    where ATTRIBUTE_ID in ('5024923','5024925','5024924')) d
                    on d.VISITOR_ID = aas.VISITOR_ID
--where aas.VISITOR_ID = '3438634761938550664_6795123974460253552'
group by a.ATTRIBUTE_VALUE, b.ATTRIBUTE_VALUE, c.ATTRIBUTE_VALUE, aas.ACTION_DATE
 
    
 
    