Получите счет школы и класс, используя группу по запросу mysql - PullRequest
0 голосов
/ 08 февраля 2020

Я хочу получить счет для общего количества школ с учетом общего количества баллов, включенных в эту школу, в случае, если счет школы не учитывает дубликат идентификатора школы. и общее количество баллов, включая школу 1 и школу 2. Все, что я хочу получить с помощью одного запроса, это возможность получить, как указано в ожидаемом результате.

Таблица:

school_id      grade

  1             1

  2             1


  1             3

  1             4

Ожидается вывод:

1) school count=2

2) grade count for individual school like

    school_id   grade_count

      1           3
      2           1

3)  total grade count  (school 1+school2)=4

Я использовал этот запрос Mysql, но он не работает в соответствии с требованием получить все три вывода

Mysql запрос:

select count(*) as total_school,count(grade) from (SELECT grade FROM schools group by school_id)X 

1 Ответ

2 голосов
/ 08 февраля 2020
SELECT 
  `school_id`,
  (SELECT COUNT(DISTINCT `school_id`) FROM `school_grade`) as different_school_count,
  COUNT(*) as school_count,
  COUNT(DISTINCT `grade`) as grade_count,
  (SELECT COUNT(*) FROM `school_grade`) as total_grade_count
FROM
  `school_grade`
GROUP BY `school_id`

ВЫХОД:

| school_id | different_school_count | school_count | grade_count | total_grade_count |
|-----------|------------------------|--------------|-------------|-------------------|
|         1 |                      2 |            3 |           3 |                 4 |
|         2 |                      2 |            1 |           1 |                 4 |

http://sqlfiddle.com/#! 9 / 9132c7 / 16

...