Search code examples
sqlsql-serverunpivot

I have 4 columns with Sum and Count Functions. I want to convert 4 columns in 4 rows


I used this query

Select Count(PostID) As TotalPost,sum(Impressions) As TotalImpression, sum(Likes) As TotalLikes, Sum(Shares) As Shares, Sum(Engagements)AS Engagements
From dm.vSocialMediaPost;

Result:

TotalPost TotalImpression TotalLikes   Shares  Engagements
712      |  1874273      |  29418     | 4231|   65326

I want result like

TotalPost             |712
TotalImpression       | 1874273      
TotalLikes            |29418  
Shares                |4231
Engagements           |65326

Solution

  • One option is a union query:

    SELECT 'TotalPost' AS label, COUNT(*) AS total FROM dm.vSocialMediaPost
    UNION ALL
    SELECT 'TotalImpression', SUM(Impressions) FROM dm.vSocialMediaPost
    UNION ALL
    SELECT 'TotalLikes', SUM(Likes) FROM dm.vSocialMediaPost
    UNION ALL
    SELECT 'Shares', SUM(Shares) FROM dm.vSocialMediaPost
    UNION ALL
    SELECT 'Engagements', SUM(Engagements) FROM dm.vSocialMediaPost;