Code: Select all
SELECT B.BMI_GROUP, B."Number", 100.0 * (CAST(B."Number" AS 'FLOAT') / CAST(R."Total" AS 'FLOAT')) AS "Percent" FROM
(SELECT BMI_GROUP, COUNT(BMI_GROUP) AS "Number" FROM
(SELECT CASE WHEN BMI BETWEEN 1 AND 29.9 THEN '<30'
WHEN BMI BETWEEN 30 AND 39.9 THEN '30-40'
ELSE '40+' END AS BMI_GROUP
FROM DEMOGRAPHICS WHERE AGE > 17) AS B
GROUP BY BMI_GROUP) AS B
INNER JOIN (SELECT COUNT(*) AS "Total"
FROM DEMOGRAPHICS WHERE AGE > 17) AS R ON R.BMI = B.BMICode: Select all
SELECT B.RACE, B.BMI_GROUP, B."Number", 100.0 * (CAST(B."Number" AS 'FLOAT') / CAST(R."RaceTotal" AS 'FLOAT')) AS "Percent" FROM
(SELECT RACE, BMI_GROUP, COUNT(RACE) AS "Number" FROM
(SELECT RACE, CASE WHEN BMI BETWEEN 1 AND 29.9 THEN '<30'
WHEN BMI BETWEEN 30 AND 39.9 THEN '30-40'
ELSE '40+' END AS BMI_GROUP
FROM DEMOGRAPHICS WHERE AGE > 17) AS B
GROUP BY RACE, BMI_GROUP) AS B
INNER JOIN (SELECT RACE, COUNT(RACE) AS "RaceTotal"
FROM DEMOGRAPHICS WHERE AGE > 17
GROUP BY RACE) AS R ON R.RACE = B.RACE
ORDER BY B.RACE, B.BMI_GROUPDoug