Таблица поиска 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

Теперь число для каждого класса

  1. В = 3
  2. B + = 4
  3. B- = 2

Я хочу рассчитать количество оценок для каждого домена

Требуемый выход:

  1. Разработчик программного обеспечения 8
  2. Бизнес-аналитика и аналитика 10
  3. Администратор базы данных 7
  4. и так далее

Может кто-нибудь помочь??

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 в самом конце запроса

Другие вопросы по тегам