Continua valendo a regra de agrupamento como disse anteriormente, afinal, usando esse ultimo exemplo você precisa saber quantas calças brancas, depois quantas calças pretas, calças azuis, etc, onde cada uma será uma linha de um agrupado, deu pra entender?
Quanto a ordem das colunas, basta colocá-las conforme a regra, não importa se a soma será no início ou no final, o que interessa é o que será apresentado junto a ela, precisa ser agrupado… e para cada defeito você usaria um case como mostrei algo assim…
SELECT
ID, PRODUTO, COR,
COUNT(ID) AS QUANTIDADE,
SUM(CASE WHEN DEFEITO = 'COR' THEN 1 ELSE 0 END) AS DEFEITO_COR,
SUM(CASE WHEN DEFEITO = 'FURO' THEN 1 ELSE 0 END) AS DEFEITO_FURO
FROM TABELA
GROUP BY ID, PRODUTO, COR
ID | PRODUTO | COR | QTD | DC | DF
1 | Calça | Branco | 50 | 12 | 30
2 | Calça | Preta | 20 | 10 | 10
3 | Calça | Azul | 100 | 50 | 20
Se amanhã ou depois você precisar apresentar junto o modelo/tecido (jeans, moleton, etc) da calça por exemplo, já sabe que também precisa agrupá-lo…
A partir dessas informações, é só ajustar à sua regra de negócio e seus critérios… boa sorte!