简体   繁体   English

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

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

I am looking to compute the avg win odds and avg place odds of horse racing markets我想计算赛马市场的平均获胜几率和平均位置几率

I have tried a CASE expression since averages for WinOdds should only be calculated if Place =1 and averages for PlaceOdds should only be included when Place <= 10我已经尝试了一个CASE表达式,因为 WinOdds 的平均值应该只在Place =1计算,而 PlaceOdds 的平均值应该只在Place <= 10时包括

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

I am looking for average odds for win (when Place =1)我正在寻找获胜的平均赔率(当位置 =1 时)

and average odds for place (when Place is <= 10)和位置的平均几率(当位置 <= 10 时)

Should return something like this:应该返回如下内容:

-- AvgWinOdds   -- AvgPlaceOdds

-- 6.44         -- 4.22

You must average the CASE expressions:您必须平均 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM