Итак, каждое утро на работе у нас есть стенд-встреча. Мы бросаем ближайший объект в ручную по комнате, как метод решения, кто говорит в каком порядке. Будучи слегка странным, я решил, что было бы интересно получить некоторые данные об этих бросках. Поэтому каждое утро я запоминаю порядок бросков (а также другие важные вещи, например, кто сбросил мяч/странный губчатый объект, который, вероятно, тоже был мячом, и кто бросил кого-то, кто уже был или просто нанес ужасный бросок) и записывать эти данные в таблице:SQL Query - Группировка данных
+---------+-----+------------+----------+---------+----------+--------+--------------+
| throwid | day | date | thrownum | thrower | receiver | caught | correctthrow |
+---------+-----+------------+----------+---------+----------+--------+--------------+
| 1 | 1 | 10/01/2012 | 1 | dan | steve | 1 | 1 |
| 2 | 1 | 10/01/2012 | 2 | steve | alice | 1 | 1 |
| 3 | 1 | 10/01/2012 | 3 | alice | matt | 1 | 1 |
| 4 | 1 | 10/01/2012 | 4 | matt | justin | 1 | 1 |
| 5 | 1 | 10/01/2012 | 5 | justin | arif | 1 | 1 |
| 6 | 1 | 10/01/2012 | 6 | arif | pete | 1 | 1 |
| 7 | 1 | 10/01/2012 | 7 | pete | greg | 0 | 1 |
| 8 | 1 | 10/01/2012 | 8 | greg | alan | 1 | 1 |
| 9 | 1 | 10/01/2012 | 9 | alan | david | 1 | 1 |
| 10 | 1 | 10/01/2012 | 10 | david | dan | 1 | 1 |
| 11 | 2 | 11/01/2012 | 1 | dan | david | 1 | 1 |
| 12 | 2 | 11/01/2012 | 2 | david | alice | 1 | 1 |
| 13 | 2 | 11/01/2012 | 3 | alice | steve | 1 | 1 |
| 14 | 2 | 11/01/2012 | 4 | steve | arif | 1 | 1 |
| 15 | 2 | 11/01/2012 | 5 | arif | pete | 0 | 1 |
| 16 | 2 | 11/01/2012 | 6 | pete | justin | 1 | 1 |
| 17 | 2 | 11/01/2012 | 7 | justin | alan | 1 | 1 |
| 18 | 2 | 11/01/2012 | 8 | alan | dan | 1 | 1 |
| 19 | 2 | 11/01/2012 | 9 | dan | greg | 1 | 1 |
+---------+-----+------------+----------+---------+----------+--------+--------------+
Я теперь получил довольно много дней стоят данных для этого, и я начинаю запускать некоторые запросы на него для своих собственных целей (я имею не сказал остальной команде еще ... не хотел бы влиять на результаты). Я сделал несколько вопросов без каких-либо проблем, но я застрял, пытаясь получить определенный результат.
То, что я ищу, - это количество раз, когда каждый человек был последним членом команды, чтобы получить мяч. Теперь, как вы можете видеть на столе, из-за отсутствия и т. Д. Количество бросков в день не всегда постоянное, поэтому я не могу просто выбрать приемник по thrownum.
В случае для приведенных выше данных, было бы вернуть:
+--------+-------------------+
| person | LastReceiverTotal |
+--------+-------------------+
| dan | 1 |
| greg | 1 |
+--------+-------------------+
Я получил это далеко:
SELECT MAX(thrownum) AS LastThrowNum, day FROM Throws GROUP BY day
Теперь это возвращает некоторые полезные данные. Я получаю самый высокий уровень за каждый день. Казалось бы, все, что мне нужно сделать, это получить получателя за это значение, а затем получить граф, сгруппированный получателем, чтобы получить мой ответ. Однако это не работает, потому что результат не является тем, что кажется из-за вышеуказанного запроса с использованием агрегатных функций.
Я подозреваю, что существует гораздо лучший способ создания таблиц для хранения данных, чтобы быть честными, но в равной степени я также уверен, что есть способ получить эту информацию с таблицами, как они есть, - какой-то внутренний запрос? Я не могу понять, как это будет работать. Может ли кто-нибудь пролить свет на то, как это будет сделано?
Серьезно: идите и выполняйте некоторые работы! ;-) –
@JonEgerton Это гораздо более важно, чем любые мелкие вакансии, которые компания может иметь на данный момент ... * сводит к минимуму окно браузера * – Hecksa
@Hecksa: Это MySQL? –