SQL Puzzle | The Completed Part Puzzle

In this puzzle you have to find out which part is finished(Completed). If the completed columns value is 1 for any part that means that the part is completed. We have to find out how many entries are there for each part and which one is completed. We have to print C in case any part is finished(Completed).

Please check out the sample input values and sample expected output below.

Can you do that in a single select ?

Sample Input

PartNm Completed
PartA 0
PartA 1
PartB 0
PartC 0
PartC 0

Expected Output

PartNm NumberOfRecords Completed
PartA 2 C
PartB 1
PartC 2

Script

Use below script to create table and insert sample data into it.

 ```-- CREATE TABLE Parts ( PartNm VARCHAR(50) NULL, Completed BIT NULL ) GO INSERT INTO Parts (PartNm,Completed) VALUES ('PartA',0), ('PartA',1), ('PartB',0), ('PartC',0), ('PartC',0) -- -- ```

Rules/Restrictions

The solution should be should use “SELECT” statement or “CTE”.

 ``` -- SELECT PartNm, COUNT(*) NumberOfRecords , CASE WHEN SUM(CAST(Completed AS INT)) = '1' THEN 'C' ELSE '' END Completed FROM Parts GROUP BY PartNm -- ```