Есть задача сформировать базу для личных целей. Исходные данные более 2000 заданий 5 работников 2 вида оценок:
1) Оценка качества по шкале супер,отл,хор,удов,неуд,ужас,срам.
2) Во второй шкале оценок 6 видов оценок пусть будет 1,2,3,4,5,6.
Вопрос : как определить итоговую оценку по заданию по оценке большинства рабочих. Вопрос 2: Как определить самые сложные задания?
К примеру все 5 поставили оценку. Или 2 человека одну оценку а остальные разные( оценка двух человек будет правильной) и еще 1 вариант итоговой оценки : средняя оценка пример: если оценки большинства не существует, то оценка формируется следующим образом двое поставили хор двое поставили неуд значит оценка будет удов.
Примечание: Вторая шкала практически нигде не учитывается!
Пример таблицы:
INSERT INTO Test (
`zadanie`,
`Id_Otcenki`,
`login`,
`otsenka1`,
`otsenka2`)
VALUES
(1,1,denis,хор,2),
(2,1,denis,ужас,1),
(3,2,denis,хор,3),
(4,1,denis,супер,1),
(1,2,sergey,хор,2),
(2,2,sergey,удов,1),
(3,1,sergey,отл,3),
(4,2,sergey,супер,1),
(1,3,denis,удов,2),
(2,3,denis,ужас,1),
(3,3,denis,хор,3),
(4,3,denis,супер,1),
(1,4,tim,ужас,2),
(2,4,tim,срам,1),
(3,4,tim,отл,3),
(4,4,tim,супер,1),
(1,5,alex,супер,2),
(2,5,alex,удов,1),
(3,5,alex,неуд,3),
(4,5,alex,супер,1),
На выходе нужно получить, что то типо этого:
Номер задания: итоговая оценка
Кажется вот это подойдет:
SELECT zadanie, FLOOR(AVG(CASE otsenka1
WHEN 'супер' THEN 6
WHEN 'отл' THEN 5
WHEN 'хор' THEN 4
WHEN 'удов' THEN 3
WHEN 'неуд' THEN 2
WHEN 'ужас' THEN 1
WHEN 'срам' THEN 0
END)) FROM Test GROUP BY zadanie`
Группирует по заданию, переводит содержимое otsenka1
в цифровой эквивалент, вычисляет средне-арифметическое и округляет вниз. В итоге получается задание и цифровая оценка.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Мне нужно, совместить данные из двух таблиц вот как выглядит схема