使用子查询划分两个选择的计数以获得百分比

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

我写了这个查询,但是它说每个表都需要拥有它自己的别名。我究竟做错了什么?据我所知,我把表格别名了。

SELECT (a.total_complete_days / b.total_days) * 100 AS "% of complete days"
FROM
(SELECT COUNT(*) AS total_complete_days
FROM (
    SELECT email, job_date, SUM(job_minutes)
    FROM jobs
    GROUP BY email, job_date
    HAVING SUM(job_minutes) BETWEEN 200 and 1000
) a,
(SELECT COUNT(*) AS total_days
FROM (
    SELECT email, job_date, SUM(job_minutes)
    FROM jobs
    GROUP BY email, job_date
) b)
mysql
1个回答
1
投票

我猜你可以简化你的查询

SELECT 
    (COUNT(CASE WHEN t.job_minutes_sum BETWEEN 200 and 1000 THEN 1 ELSE NULL END) / COUNT(*) 
    ) * 100 AS "% of complete days"
FROM (
    SELECT email, job_date, SUM(job_minutes) job_minutes_sum
    FROM jobs
    GROUP BY email, job_date
) t
© www.soinside.com 2019 - 2024. All rights reserved.