Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### задание 1
- // Самое простое - найти того, кто больше всех косячит, топ-10 тех, кто накосячил (правильный ответ не равен его ответу) больше всех
- SELECT SUM(`jud` != `cjud`) `count_errors`, `login`
- FROM `ratings`
- GROUP BY `login`
- ORDER BY `count_errors` DESC
- LIMIT 10
- // но можно простить косяки, если чел сделал что-то полезное, т.е., можно их оценивать по "полезности" - разности правильных и неправильных ответов
- SELECT SUM(`jud` != `cjud`) `count_errors`, SUM(`jud` = `cjud`) `count_ok`, (SUM(`jud` = `cjud`) - SUM(`jud` != `cjud`)) `useful`, `uid`
- FROM `ratings`
- GROUP BY `uid`
- ORDER BY `useful` ASC
- LIMIT 10
- ### Задание 2
- // Самое очевидное, что хочется сделать - это посчитать, сколько времени уходит на задачу в среднем, глядя на начало и конец - 33112.43381138848
- SELECT AVG(`time`) FROM (
- SELECT ((`closed_ts` - `assigned_ts`) / `microtasks`) `time` FROM `times`
- ) `t1`
- // Поумнее будет выбрать разницу во времени между тем, как сдали предыдущую задачу и текущую задачу, время выглядит правдоподобнее - 1352.0834174937609
- SELECT AVG(`time`) FROM (
- SELECT (TIMESTAMPDIFF(SECOND, `t1`.`closed_ts`, MIN(`t2`.`closed_ts`)) / `t2`.`microtasks`) `time`
- FROM `times` `t1`
- JOIN `times` `t2` ON (`t1`.`login` = `t2`.`login` AND `t1`.`closed_ts` < `t2`.`closed_ts`)
- GROUP BY `t1`.`closed_ts`, `t1`.`login`
- ORDER BY `t1`.`closed_ts` ASC
- )`t3`
- // Ещё высчитать, сколько минимально он тратит на единицу, а не в среднем, потому что минимальное время - вероятнее всего то, когда он не ходит за чаем, а нормально работал - 2.4 секунды на 1 задачу, т.е. за неё нужно заплатить N / 30 * 2.4
- SELECT MIN(`time`) FROM (
- SELECT (TIMESTAMPDIFF(SECOND, `t1`.`closed_ts`, MIN(`t2`.`closed_ts`)) / `t2`.`microtasks`) `time`
- FROM `times` `t1`
- JOIN `times` `t2` ON (`t1`.`login` = `t2`.`login` AND `t1`.`closed_ts` < `t2`.`closed_ts`)
- GROUP BY `t1`.`closed_ts`, `t1`.`login`
- ORDER BY `t1`.`closed_ts` ASC
- ) `t3`
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement