他の同様の質問を見てきましたが、私がやろうとしていることとは少し違うようです。
2 つのカウント値を選択している単一のクエリがあり、一方を他方で除算したいと考えています。
ここに私の作業コードがあります:
SELECT (SELECT count(DISTINCT s.lastfirst)
FROM students s
JOIN cc ON s.id = cc.studentid
JOIN courses c on cc.course_number = c.course_number
WHERE cc.schoolid='109'
AND c.course_name LIKE 'AP %'
AND substr(cc.termid,0,1) <> '-'
AND cc.dateenrolled BETWEEN to_date('08/01/2010','MM/DD/YYYY') AND
to_date('08/01/2011','MM/DD/YYYY')) as AP,
(SELECT count(DISTINCT s.lastfirst)
FROM students s
JOIN cc ON s.id = cc.studentid
JOIN courses c on cc.course_number = c.course_number
WHERE cc.schoolid = '109'
AND substr(cc.termid,0,1) <> '-'
AND cc.dateenrolled BETWEEN to_date('08/01/2010','MM/DD/YYYY')
AND to_date('08/01/2011','MM/DD/YYYY')) as ttl
FROM DUAL
ここで私はそれを壊します:
SELECT (SELECT count(DISTINCT s.lastfirst)
FROM students s
JOIN cc ON s.id = cc.studentid
JOIN courses c on cc.course_number = c.course_number
WHERE cc.schoolid='109'
AND c.course_name LIKE 'AP %'
AND substr(cc.termid,0,1) <> '-'
AND cc.dateenrolled BETWEEN to_date('08/01/2010','MM/DD/YYYY')
AND to_date('08/01/2011','MM/DD/YYYY')) as AP,
(SELECT count(DISTINCT s.lastfirst)
FROM students s
JOIN cc ON s.id = cc.studentid
JOIN courses c on cc.course_number = c.course_number
WHERE cc.schoolid = '109'
AND substr(cc.termid,0,1) <> '-'
AND cc.dateenrolled BETWEEN to_date('08/01/2010','MM/DD/YYYY')
AND to_date('08/01/2011','MM/DD/YYYY')) as ttl,
(AP / ttl) as pcnt
FROM DUAL
誰かがこれを行う適切な方法を教えてください。
ありがとうございました