Вечер
У меня есть спортивная таблица, которая упорядочена по проценту успеха ((выигранные игры + (выигранные игры/2)/сыгранные игры), после вывода я вывожу, что если выиграно 100% игр, то это читается как 1.000, 75 %, затем 0,750, 50% как 0,500 и т. д. (с опущенным начальным 0).
В настоящее время я могу заставить его отображать от 0,000 до 0,950, и если команда сыграла только 1 матч и выиграла, то на выходе отображается 0,100.
Как я могу: а) заставить его показывать 1 сыгранный/выигранный матч как 1.000 б) показывать и другие комбинации в процентах, например 0,500
Есть идеи?
Спасибо
SELECT team
, COUNT(*) as played
, SUM(win) as wins
, SUM(loss) as lost
, SUM(draw) as draws
, SUM(SelfScore) as ptsfor
, SUM(OpponentScore) as ptsagainst
, SUM((win*2 + draw)- loss) as score
, CAST(SUM(win + (draw/2))/(count(*)) as decimal(3,3)) pctWon
FROM (
SELECT team
, SelfScore
, OpponentScore
, SelfScore > OpponentScore win
, SelfScore < OpponentScore loss
, SelfScore = OpponentScore draw
FROM (
SELECT HomeTeam team, HomeScore SelfScore, AwayScore OpponentScore
FROM Game
WHERE Season = '2015' and Type = 'League'
UNION ALL
SELECT AwayTeam, AwayScore, HomeScore
FROM Game
WHERE Season = '2015' and Type = 'League'
) a
) b
GROUP BY team
ORDER BY pctWon DESC, score DESC, ptsagainst DESC, team ASC;
");
Это дает правильно выглядящую таблицу, за исключением того, что верхние 2 отображают некорректный PCT.
Team W L T PF PA PCT
T1 1 0 0 54 0 0.100
T2 1 0 0 44 0 0.100
T3 0 1 0 0 54 0.000
T4 0 1 0 0 44 0.000
T5 6 2 2 220 122 0.700
T6 7 3 0 247 139 0.700
T7 6 4 0 191 191 0.600
T8 4 5 1 167 201 0.450
T9 3 6 1 142 202 0.350
T10 2 8 0 193 305 0.200
Спасибо