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
我想计算赛马市场的平均获胜赔率和平均位置赔率
我已经尝试了 CASE
表达式,因为只有在 Place =1
时才应该计算 WinOdds 的平均值,并且只有在 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
我正在寻找获胜的平均赔率(当 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