[英]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.