Таблица поиска SQL
Мой запрос:
select
C.GradePoint, D.Domain
from
(select
A.course_code, B.course_title, A.GradePoint
from
(select
course_code, GradePoint
from
CoursesResult$
where
roll_number = '42472' and GradePoint != 'I'
and GradePoint != 'F' and GradePoint != 'D-'
and GradePoint != 'D+' and GradePoint != 'D'
and GradePoint != 'C-' and GradePoint != 'C'
and GradePoint != 'C+') A
join Courses$ B on A.course_code=B.course_code) C
join Domains$ D on C.course_title=D.Courses
Выход:
GradePoint Domain
1. B+ Software Developer
2. B- Software Developer
3. B- Software Developer
4. B- Project Management
5. B- Business Intelligence and Analytics
6. B+ Business Intelligence and Analytics
7. B+ Business Intelligence and Analytics
8. B- Game Development
9. B Game Development
10. B- Database Administrator
11. B- Database Administrator
12. B Database Administrator
Теперь число для каждого класса
- В = 3
- B + = 4
- B- = 2
Я хочу рассчитать количество оценок для каждого домена
Требуемый выход:
- Разработчик программного обеспечения 8
- Бизнес-аналитика и аналитика 10
- Администратор базы данных 7
- и так далее
Может кто-нибудь помочь??
1 ответ
Решение
Замените свои первые две строки этим:
select
SUM(CASE C.GradePoint WHEN 'B' THEN 3 WHEN 'B+' THEN 4 WHEN 'B-' THEN 2 ELSE 0 END),
D.Domain
И добавить GROUP BY D.Domain
в самом конце запроса