获取与studentid的最小非零计数过程中(最低数招生):
SELECT COUNT(e.studentid) AS lowest_nonzero_count
FROM Enrollment e
GROUP BY e.coursecode
ORDER BY 1
LIMIT 1
但是,如果我们要考虑的是没有任何的入学课程(即,如果我们考虑到零是最低的数字入学的有效值)
SELECT COUNT(e.studentid) AS lowest_count
FROM course c
LEFT
JOIN enrollment e
ON e.coursecode = c.coursecode
GROUP BY c.coursecode
ORDER BY 1
LIMIT 1
哪些课程有一个最低(非零)studentid的计数?如果我们知道具体的值,我们可以做到这一点(代表有一个占位符:lowest_nonzero_count
这个值:
SELECT d.coursecode
, COUNT(d.studentid)
FROM enrollment d
GROUP BY d.coursecode
HAVING COUNT(d.studentid) = :lowest_nonzero_count
这是我们能够与返回值的子查询替换:lowest_nonzero_count
占位符:
SELECT d.coursecode
, COUNT(d.studentid)
FROM enrollment d
GROUP BY d.coursecode
HAVING COUNT(d.studentid) =
(SELECT COUNT(e.studentid)
FROM Enrollment e
GROUP BY e.coursecode
ORDER BY 1
LIMIT 1
)
ORDER BY d.coursecode
如果我们要考虑一个“零”值作为入学率的有效号码:
SELECT b.coursecode
, COUNT(d.studentid)
FROM course b
LEFT
JOIN enrollment d
ON d.coursecode = b.coursecode
GROUP BY b.coursecode
HAVING COUNT(d.studentid) =
(SELECT COUNT(e.studentid)
FROM course c
LEFT
JOIN enrollment e
ON e.coursecode = c.coursecode
GROUP BY c.coursecode
ORDER BY 1
LIMIT 1
)
ORDER BY b.coursecode
如果你想本网站上的帮助,请告诉我们先从:那你试试? – 2015-02-06 02:02:03