如何使用MySQL查找百分比?

问题描述 投票:0回答:1

我想找出2012年夏季学期在不同地点的年龄大于5岁的人群所占的百分比。我写了SQL,但它给出了一个错误。

SELECT Venue,
100*COUNT
    (SELECT DISTINCT hid,
    q1 FROM raw_data 
    WHERE q2 > 5 
    AND Year=2012 
    AND Semester='summer' 
    GROUP BY Venue)
    /(SELECT DISTINCT hid,q1 
     FROM raw_data 
     WHERE Year=2012 
     AND Semester='summer' 
     GROUP BY Venue) 
AS "%" 
FROM raw_data 
WHERE Year=2012 
AND Semester='summer' 
GROUP BY Venue
mysql sql count percentage
1个回答
1
投票
SELECT t2.Venue, 100*IFNULL(t1.ct, 0)/t2.ct AS '%'
FROM (
    SELECT Venue, COUNT(DISTINCT hid, q1) AS ct
    FROM raw_data 
    WHERE q2 > 5
    AND Year = 2012
    AND Semester = 'summer'
    GROUP BY Venue) AS t1
RIGHT JOIN (
    SELECT Venue, COUNT(DISTINCT hid, q1) AS ct
    FROM raw_data
    WHERE Year = 2012
    AND Semester = 'summer'
    GROUP BY Venue) AS t2
ON t1.Venue = t2.Venue

我使用RIGHT JOIN,因此对于没有5岁以上人员的场所,我们将获得0%

© www.soinside.com 2019 - 2024. All rights reserved.