Я пытаюсь рассчитать коэффициенты выигрыша для игроков, использующих разные «нации». Исходные данные, которые я получаю, зависят от каждого игрока за игру, поэтому в игре 1v1 я получаю две записи в базе данных. Один будет показывать «выигрыш» для одной команды, а другая запись будет записывать «потерю» для противоположной команды. Проблема в том, что существует несколько разных «наций», и я хочу иметь возможность рассчитать ставку выигрыша нации против страны, в отличие от общей общей ставки выигрыша для каждой команды, если это имеет смысл. напримерВыполнение условных вычислений с использованием данных, распределенных по нескольким записям
Глядя на пример ниже, я хочу, чтобы можно было рассчитать скорость, с которой собаки избивали кошек, кошек били мышей и мышей избивали собак.
Вот упрощенная игрушка модель данных, я работаю с
date match sessionid team nation result
1/1/2016 1 143138354 0 cats loss
1/1/2016 1 143146203 1 dogs win
1/1/2016 2 143134711 0 mice win
1/1/2016 2 143165199 1 dogs loss
1/1/2016 3 143183402 0 cats win
1/1/2016 3 143127251 1 mice loss
1/1/2016 4 143192433 0 cats win
1/1/2016 4 143129777 1 dogs loss
1/1/2016 5 143197254 0 mice win
1/1/2016 5 143147178 1 dogs loss
1/1/2016 6 143220297 0 cats loss
1/1/2016 6 143168454 1 mice win
1/1/2016 7 143169544 0 cats win
1/1/2016 7 143188824 0 cats win
1/1/2016 7 143178786 1 mice loss
1/1/2016 7 143212127 1 dogs loss
Я считал что-то вроде
SELECT
match,
CASE WHEN nation='cats' AND result='loss' AND nation='dogs' AND result='win' THEN 'dogs_over_cats' END as result
FROM
table
GROUP BY
match
Но, конечно, не работает, потому что страна может» одновременно быть «кошками» и «собаками».
То, что я хочу что-то вроде этого
дата, матч, winning_nation, losing_nation
или альтернативно
дата матча, результат
, где результатом будет строка, указывающая обыгравший кто ('dogs_over_cats') или что-то в этом роде.
Я понятия не имею, как это сделать. Похоже, это должно быть довольно просто, но я не могу понять, как это сделать. Как получить оператор CASE для одновременного рассмотрения значений полей по нескольким записям. Возможно ли это? Должен ли я просто использовать функции задержки/свинца?
Благодаря Брэд
Благодаря Джон, это здорово. Это будет работать отлично. Спасибо за этот трюк. –