问题描述
我正在计算赛马市场的平均获胜赔率和平均排名赔率
我尝试了CASE
表达式,因为仅在Place =1
时才计算WinOdds的平均值,而在Place <= 10
时才应包含PlaceOdds的平均值
SELECT
CASE WHEN Place = 1 THEN AVG(IndustrySP) AS AvgWinOdds,CASE WHEN Place <= 10 THEN AVG((IndustrySP - 1.0) / 5) AS AvgPlaceOdds
FROM dbo.GrandNational -- This is the `view` I want to query
我正在寻找获胜的平均赔率(当Place = 1时)
和位置的平均赔率(当位置
应返回如下内容:
-- AvgWinOdds -- AvgPlaceOdds
-- 6.44 -- 4.22
解决方法
您必须对CASE表达式求平均:
SELECT
AVG(CASE WHEN Place = 1 THEN IndustrySP END) AS AvgWinOdds,AVG(CASE WHEN Place <= 10 THEN (IndustrySP - 1.0) / 5 END) AS AvgPlaceOdds
FROM dbo.GrandNational