Извините за запутанное название, не знал, как это сказать.Извлечение частного из двух SUM (col) JOIN ON разных значений
У меня есть таблица событий и таблица ставок на эти события. Я уже делаю ставку на общую сумму на каждом событии, но я также хочу получить коэффициенты (ака, частное от общей суммы для одной команды, деленной на общую сумму другой команды). Участник, делающий ставку, хранится в столбце horse
таблицы data_bets
.
Например, я хочу, чтобы добавить что-то вроде:
SELECT
SUM(data_bets.amount) WHERE data_bets.horse = data_events.challenger
/
SUM(data_bets.amount) WHERE data_bets.horse = data_events.contestant
AS bet_odds
в существующий запрос ниже:
SELECT *,
SUM(data_bets.amount) AS total_pot,
COUNT(data_bets.member) AS total_bets,
COUNT(data_votes.member) AS total_votes,
data_platforms.name AS platform_name, data_platforms.icon AS platform_icon
FROM data_events
LEFT JOIN data_bets ON data_bets.event=data_events.id
LEFT JOIN data_votes ON data_votes.content_type=2 AND data_votes.content_id=data_events.id
LEFT JOIN data_platforms ON data_platforms.id=data_events.platform
WHERE status=1
GROUP BY data_events.id
ORDER BY total_pot DESC
Возможно ли это сделать с одним запросом? Если это возможно, я бы предпочел, чтобы принести как challenger_odds
и contestant_odds
, как это:
SELECT
SUM(data_bets.amount) WHERE data_bets.horse = data_events.challenger
/
SUM(data_bets.amount) WHERE data_bets.horse = data_events.contestant
AS challenger_odds,
SUM(data_bets.amount) WHERE data_bets.horse = data_events.contestant
/
SUM(data_bets.amount) WHERE data_bets.horse = data_events.challenger
AS contestant_odds
Я теперь с помощью нашего условного совокупного заявление, чтобы принести вверх/вниз голосов от таблица data_votes, но у меня проблемы. Помните, если я обновляю этот вопрос с помощью нового запроса? – SISYN
@ DanL. , , Вы должны задать другой вопрос. –