【发布时间】:2014-04-29 16:52:18
【问题描述】:
我正在尝试计算符合特定标准的学生的百分比。 我有 3 个单独的表需要从中获取数据,然后我需要从一个表(学生)中获取总数作为学生总数。 然后我需要用这个总数来除第二次查询中学生人数的 COUNT。
所以基本上我想首先计算数据库中所有学生的数量。 然后计算出现在我的主查询中的学生人数(返回数据的学生)。 然后我需要执行计算,将 noOfStudents (2) 除以主要总数 (24)(DB 中的学生人数),然后 *100 给出符合主要查询条件的学生百分比.
这是我目前所拥有的:
SELECT * FROM (
(
SELECT s.firstname, s.lastname, s.RegistrationDate, s.Email, d.ReviewDate,(r.description) AS "Viva" , COUNT(*) AS "No of Students"
FROM student s
INNER JOIN dates d
ON s.id=d.student_identifier
INNER JOIN reviews r
ON d.review_Identifier=r.id
WHERE r.description = "Viva Date"
GROUP BY s.student_identifier
ORDER BY s.student_identifier)
) AS Completed
WHERE Completed.ReviewDate BETWEEN '2012-01-01' AND '2014-12-01'
;
我需要在第二个 SELECT 之后输出字段,然后这些数据将通过 PHP/HTML 代码显示在页面上(BETWEEN 日期将通过“%s”发送)。
我想知道我是否应该使用 2 个单独的查询,然后从第一个查询中获取值 (24) 以在第二个查询中执行计算,但我无法弄清楚如何保存为 2 个单独的查询然后引用第一个查询。
我也不确定是否可以在输出满足条件的单个行的同时显示总百分比?
我正在尝试自学 SQL,因此,如果我在上述任何内容中犯了任何明显的错误/假设,我深表歉意,并且不胜感激。
谢谢。
【问题讨论】:
-
你必须停止使用pre ansi 92 join syntax。