SQL - 如何使用 CASE 表达式查询 VIEW - 查找列中的平均数

SQL - How to query a VIEW with a CASE expression - Find the average number in a column

我想计算赛马市场的平均获胜赔率和平均位置赔率

我已经尝试了 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 时)

和位置的平均赔率(当位置 <= 10 时)

应该return像这样:

-- 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