#php #mysql
#php #mysql
Вопрос:
Я создал таблицу на PHP для отображения представленных студентами доказательств по курсу.
Учащиеся подают заявку, чтобы указать, каким критериям соответствуют их файлы. По сути, это таблица с файлами, перечисленными внизу слева, и критериями, перечисленными вверху. Для каждого файла критерием являются тики-учащиеся.
Затем я хочу подсчитать, какие критерии соблюдены, а какие нет. В принципе, в каких столбцах есть отметки, а в каких нет.
Легко подсчитать все тики в таблице, но я изо всех сил пытаюсь понять, как подсчитывать отдельные тики по столбцам в таблице.
Есть идеи?
Комментарии:
1. можете ли вы добавить подробности о том, как вы храните данные? Вывод
SHOW CREATE TABLE
был бы идеальным2. Не очень понятно, какие результаты вы хотите получить. Я высказал несколько смелых предположений и получил ответ, но было бы здорово получить более конкретную информацию.
3. Надеюсь, это изображение немного проясняется. Я ищу, какие критерии были заявлены. [ссылка] citybit.southampton-city.ac.uk/example . PNG в этом примере я ищу 4, которые будут возвращены.
4. Я отредактировал свой ответ в соответствии с вашим scema.
Ответ №1:
Если не совпадающий критерий является нулевым значением, то это подойдет:
select student,
count(crit1) > 0 as crit1,
count(crit2) > 0 as crit2
from submission
group by student
order by student
;
Ответ №2:
SELECT ...
COUNT(DISTINCT ...) ...
Ответ №3:
Я предполагаю, что у вас есть таблица, подобная (конечно, имена вместо CritX). Также предположим, что критерий без галочки будет иметь NULL
значение:
submission (fileanme, crit1, crit2, crit3, critN)
затем вы можете проверить, какие критерии были заявлены, а какие нет:
SELECT MAX(crit1) AS crit1, MAX(crit2) AS crit2 FROM submission;
Вы можете получить количество категорий со значениями, отмеченными галочками:
SELECT MAX(crit1) MAX(crit2) AS number FROM submission;