Ich habe die folgende select-Anweisung. Ich habe Schulen, Kurse, Studenten und Noten (1-100). Ich möchte eine Note (A, B, C, D) vergeben und dann die Gesamtzahl der Schüler in jeder Klasse erhalten. Meine Ergebnisse zeigen nur die Anzahl der jede Markierung obwohl und nicht die Zählung der KlasseWeisen Sie den Schülern eine Note zu und erhalten Sie für jede Note eine Summe.
select
schools.name as school_name,
courses.name as course,
CASE
WHEN ((studentgrades.averageScore/50 * 100) > 79)
THEN 'A'
WHEN ((studentgrades.averageScore/50 * 100) < 80)
AND ((studentgrades.averageScore/50 * 100) >64)
THEN 'B'
WHEN ((studentgrades.averageScore/50 * 100) < 80)
AND ((studentgrades.averageScore/50 * 100) >64)
THEN 'C'
WHEN ((studentgrades.averageScore/50 * 100) < 50)
THEN 'D'
END as grade,
count(*)
from
students,
studentgrades,
schools,
courses
where
studentgrades.studentid = students.studentid
and studentgrades.schoolid = students.schoolid
and studentgrades.schoolid = schools.school_number
and courses.id = studentgrades.coursesid
and studentgrades.averageScore is not null
and schools.name = 'St. Joe School'
group by schools.name, courses.name,standardsgrades.averageScore
Was ich jetzt ist die Anzahl der einzelnen Markierungen (zB 5 Studenten bekamen 88%, 3 bekamen 85% usw.)
School Name Course Grade Count
St. Joe School MATH 30 A 5
St. Joe School MATH 30 A 3
St. Joe School MATH 30 A 2
St. Joe School MATH 30 A 1
St. Joe School MATH 30 A 1
St. Joe School MATH 30 A 2
St. Joe School MATH 30 A 3
St. Joe School MATH 30 B 2
St. Joe School MATH 30 B 5
St. Joe School MATH 30 B 2
St. Joe School MATH 30 B 1
St. Joe School MATH 30 B 2
Was will ich es sehe, ist die Summe der Zählung jeder Klasse (A, B, C, D)
School Name Course Grade Count
St. Joe School MATH 30 A 30
St. Joe School MATH 30 B 20
St. Joe School MATH 30 C 10
St. Joe School MATH 30 D 5
Warum Oracle-Anwender neigen dazu, die alte implizite Verknüpfungen zu benutzen? – Parfait
Es ist ein alter Code, den ich ändern möchte. Ich verwende normalerweise den expliziten Join;) – EvilEddie
Entferne die group von on ', standardgrades.averageScore' und ändere' count (*) 'in' count (*) Over (partition by {deine case-Anweisung}) ' – xQbert