This article is about the usage of CASE statement within Group By clause .
For example : Consider below sample data
DECLARE @Tmp TABLE (Products VARCHAR(50),Count INT)
INSERT @Tmp SELECT 'SQL Server 2008',100
INSERT @Tmp SELECT 'SQL Server 2008',100
INSERT @Tmp SELECT 'SQL Server 2012',200
INSERT @Tmp SELECT 'SQL Server 2012',200
INSERT @Tmp SELECT 'ORACLE',600
Consider if we are required to calculate the overall count of the products like "SQL" and "Oracle" ,
then below query containing Group By clause with CASE statement can be used :
SELECT
CASE WHEN Products LIKE '%SQL%' THEN 'MSSQL'
WHEN Products LIKE '%ORACLE%' THEN 'Oracle'
ELSE NULL END Products ,
SUM(Count) OverallCount
FROM @Tmp
GROUP BY CASE WHEN Products LIKE '%SQL%' THEN 'MSSQL'
WHEN Products LIKE '%ORACLE%' THEN 'Oracle'
ELSE NULL END
For example : Consider below sample data
DECLARE @Tmp TABLE (Products VARCHAR(50),Count INT)
INSERT @Tmp SELECT 'SQL Server 2008',100
INSERT @Tmp SELECT 'SQL Server 2008',100
INSERT @Tmp SELECT 'SQL Server 2012',200
INSERT @Tmp SELECT 'SQL Server 2012',200
INSERT @Tmp SELECT 'ORACLE',600
Consider if we are required to calculate the overall count of the products like "SQL" and "Oracle" ,
then below query containing Group By clause with CASE statement can be used :
SELECT
CASE WHEN Products LIKE '%SQL%' THEN 'MSSQL'
WHEN Products LIKE '%ORACLE%' THEN 'Oracle'
ELSE NULL END Products ,
SUM(Count) OverallCount
FROM @Tmp
GROUP BY CASE WHEN Products LIKE '%SQL%' THEN 'MSSQL'
WHEN Products LIKE '%ORACLE%' THEN 'Oracle'
ELSE NULL END
No comments:
Post a Comment