@amorphine

Подсчет полей с условием и группировкой — в чем ошибка?

Необходимо подсчитать количество правильных и неправильных ответов на вопросы(points > 0 ? 'правильный' : 'неправильный) и сгруппировать

Таблица вида:
+----+-------------+--------+
| id | question_id | points |
+----+-------------+--------+
| 1  | 1           | 1      |
+----+-------------+--------+
| 2  | 1           | 3      |
+----+-------------+--------+
| 3  | 1           | 0      |
+----+-------------+--------+
| 4  | 2           | 1      |
+----+-------------+--------+
| 5  | 2           | 2      |
+----+-------------+--------+
| 6  | 2           | 0      |
+----+-------------+--------+


Необходимо получить
+-------------+---------+-----------+
| question_id | correct | incorrect |
+-------------+---------+-----------+
| 1           | 2       | 1         |
+-------------+---------+-----------+
| 2           | 2       | 1         |
+-------------+---------+-----------+


Приблизился к варианту
SELECT
    question_id,
    SUM(IF(points < 1)) AS 'Incorrect',
    SUM(IF(points >= 1)) AS 'Correct'
FROM
    `cp_question_student`
GROUP BY
    question_id


Но mysql жалуется на ошибку в
SUM(IF(points < 1)) AS 'Incorrect',

SQL Fiddle

Заранее спасибо за помощь
  • Вопрос задан
  • 104 просмотра
Решения вопроса 2
0xD34F
@0xD34F
SELECT
    question_id,
    SUM(points <  1) AS 'Incorrect',
    SUM(points >= 1) AS 'Correct'
FROM
    `cp_question_student`
GROUP BY
    question_id
Ответ написан
@RidgeA
ошибка в синтаксисе
https://dev.mysql.com/doc/refman/5.7/en/control-fl...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы