Sql n-损失组合)--将CASE语句改为使用win\u Loss标志。然后只需在一个地方更改团队名称——主要条款您是否希望对任何其他团队使用相同的逻辑(即,比较其他赢-输组合)——将案例语句改为使用Win\u-Loss标志。然后,只需在一个地方更改团队名称——
Sql n-损失组合)--将CASE语句改为使用win\u Loss标志。然后只需在一个地方更改团队名称——主要条款您是否希望对任何其他团队使用相同的逻辑(即,比较其他赢-输组合)——将案例语句改为使用Win\u-Loss标志。然后,只需在一个地方更改团队名称——,sql,sqlite,inner-join,correlated-subquery,Sql,Sqlite,Inner Join,Correlated Subquery,n-损失组合)--将CASE语句改为使用win\u Loss标志。然后只需在一个地方更改团队名称——主要条款您是否希望对任何其他团队使用相同的逻辑(即,比较其他赢-输组合)——将案例语句改为使用Win\u-Loss标志。然后,只需在一个地方更改团队名称——main WHERE子句 SELECT box_score.team_name, ROUND(AVG(eFG),3) eFG, ROUND(AVG(OPP_eFG),3) OPP_eFG, ROUND(AVG(
n-损失组合)--将CASE语句改为使用
win\u Loss
标志。然后只需在一个地方更改团队名称——主要条款您是否希望对任何其他团队使用相同的逻辑(即,比较其他赢-输组合)——将案例语句改为使用Win\u-Loss
标志。然后,只需在一个地方更改团队名称——main WHERE子句
SELECT
box_score.team_name,
ROUND(AVG(eFG),3) eFG,
ROUND(AVG(OPP_eFG),3) OPP_eFG,
ROUND(AVG(TOV_PCT),3) TOV_PCT,
ROUND(AVG(OPP_TOV_PCT),3) OPP_TOV_PCT,
ROUND(AVG(ORB_PCT),3) ORB_PCT,
ROUND(AVG(DRB_PCT),3) DRB_PCT,
ROUND(AVG(FTA_RATE),3) FTA_RATE,
ROUND(AVG(OPP_FTA_RATE),3) OPP_FTA_RATE
FROM box_score
WHERE team_name = 'Miami Heat' AND WIN_LOSS = 'W' AND game_date < '2019-03-07'
WHERE team_name = 'New York Knicks' AND WIN_LOSS = 'L' AND game_date < '2019-03-07'
eFG OPP_eFG TOV_PCT OPP_TOV_PCT ORB_PCT DRB_PCT FTA_RATE OPP_FTA_RATE
0.603 0.505 0.14 0.126 0.28 0.77 0.235 0.141
eFG OPP_eFG TOV_PCT OPP_TOV_PCT ORB_PCT DRB_PCT FTA_RATE OPP_FTA_RATE
0.568 0.602 0.146 0.136 0.225 0.787 0.222 0.235
SELECT
box_score.team_name,
ROUND(AVG(CASE WHEN team_name = 'Miami Heat' AND WIN_LOSS = 'W' THEN eFG END),3) Heat_eFG,
ROUND(AVG(CASE WHEN team_name = 'New York Knicks' AND WIN_LOSS = 'L' THEN eFG END),3) Knicks_eFG,
ROUND(AVG(CASE WHEN team_name = 'Miami Heat' AND WIN_LOSS = 'W' THEN OPP_eFG END),3) Heat_OPP_eFG,
ROUND(AVG(CASE WHEN team_name = 'New York Knicks' AND WIN_LOSS = 'L' THEN OPP_eFG END),3) Knicks_OPP_eFG,
ROUND(AVG(CASE WHEN team_name = 'Miami Heat' AND WIN_LOSS = 'W' THEN TOV_PCT END),3) Heat_TOV_PCT,
ROUND(AVG(CASE WHEN team_name = 'New York Knicks' AND WIN_LOSS = 'L' THEN TOV_PCT END),3) Knicks_TOV_PCT,
ROUND(AVG(CASE WHEN team_name = 'Miami Heat' AND WIN_LOSS = 'W' THEN OPP_TOV_PCT END),3) Heat_OPP_TOV_PCT,
ROUND(AVG(CASE WHEN team_name = 'New York Knicks' AND WIN_LOSS = 'L' THEN OPP_TOV_PCT END),3) Knicks_OPP_TOV_PCT,
ROUND(AVG(CASE WHEN team_name = 'Miami Heat' AND WIN_LOSS = 'W' THEN ORB_PCT END),3) Heat_ORB_PCT,
ROUND(AVG(CASE WHEN team_name = 'New York Knicks' AND WIN_LOSS = 'L' THEN ORB_PCT END),3) Knicks_ORB_PCT,
ROUND(AVG(CASE WHEN team_name = 'Miami Heat' AND WIN_LOSS = 'W' THEN DRB_PCT END),3) Heat_DRB_PCT,
ROUND(AVG(CASE WHEN team_name = 'New York Knicks' AND WIN_LOSS = 'L' THEN DRB_PCT END),3) Knicks_DRB_PCT,
ROUND(AVG(CASE WHEN team_name = 'Miami Heat' AND WIN_LOSS = 'W' THEN FTA_RATE END),3) Heat_FTA_RATE,
ROUND(AVG(CASE WHEN team_name = 'New York Knicks' AND WIN_LOSS = 'L' THEN FTA_RATE END),3) Knicks_FTA_RATE,
ROUND(AVG(CASE WHEN team_name = 'Miami Heat' AND WIN_LOSS = 'W' THEN OPP_FTA_RATE END),3) Heat_OPP_FTA_RATE,
ROUND(AVG(CASE WHEN team_name = 'New York Knicks' AND WIN_LOSS = 'L' THEN OPP_FTA_RATE END),3) Knicks_OPP_FTA_RATE
FROM box_score
WHERE team_name IN ('Miami Heat', 'New York Knicks') AND game_date < '2019-03-07'
SELECT
box_score.team_name,
ROUND(AVG(CASE
WHEN team_name = 'Miami Heat' THEN eFG
WHEN team_name = 'New York Knicks' THEN OPP_eFG
END, 3) Heats_eFG_Knicks_OPP_eFG,
ROUND(AVG(CASE
WHEN team_name = 'Miami Heat' THEN OPP_eFG
WHEN team_name = 'New York Knicks' THEN eFG
END, 3) Heats_OPP_eFG_Knicks_eFG,
ROUND(AVG(CASE
WHEN team_name = 'Miami Heat' THEN TOV_PCT
WHEN team_name = 'New York Knicks' THEN OPP_TOV_PCT
END, 3) Heats_TOV_PCT_Knicks_OPP_TOV_PCT,
ROUND(AVG(CASE
WHEN team_name = 'Miami Heat' THEN OPP_TOV_PCT
WHEN team_name = 'New York Knicks' THEN TOV_PCT
END, 3) Heats_OPP_TOV_PCT_Knicks_TOV_PCT,
ROUND(AVG(CASE
WHEN team_name = 'Miami Heat' THEN FTA_RATE
WHEN team_name = 'New York Knicks' THEN OPP_FTA_RATE
END, 3) Heats_FTA_RATE_Knicks_OPP_FTA_RATE,
ROUND(AVG(CASE
WHEN team_name = 'Miami Heat' THEN OPP_FTA_RATE
WHEN team_name = 'New York Knicks' THEN FTA_RATE
END, 3) Heats_OPP_FTA_RATE_Knicks_FTA_RATE
FROM box_score
WHERE
game_date < '2019-03-07'
AND (
( team_name = 'Miami Heat' AND win_loss = 'W' )
OR ( team_name = 'New York Knicks' AND win_loss = 'L')
)
WITH selector_heat as (
SELECT
box_score.team_name,
ROUND(AVG(eFG),3) eFG,
ROUND(AVG(OPP_eFG),3) OPP_eFG,
ROUND(AVG(TOV_PCT),3) TOV_PCT,
ROUND(AVG(OPP_TOV_PCT),3) OPP_TOV_PCT,
ROUND(AVG(ORB_PCT),3) ORB_PCT,
ROUND(AVG(DRB_PCT),3) DRB_PCT,
ROUND(AVG(FTA_RATE),3) FTA_RATE,
ROUND(AVG(OPP_FTA_RATE),3) OPP_FTA_RATE
FROM box_score
WHERE team_name = 'Miami Heat' AND WIN_LOSS = 'W' AND game_date < '2019-03-07'
)
, selector_knicks as (
...
)
select H.eFG - K.OPP_eFG as magic_nbr
from selector_heat H
join selector_knicks K ON (1=1)
SELECT
team_name,
WIN_LOSS,
ROUND(AVG(eFG) OVER (partition by team_name, win_loss),3) as eFG
...
from box_score
where game_date < '2019-03-07'
WITH cte as (SELECT ...)
SELECT H.eFG - K.OPP_eFG as magic_nbr
FROM cte H join cte K
ON (H.team_name = 'Miami Heat'
AND K.team_name = 'NY Knicks'
AND H.win_loss = 'W'
AND K.win_loss = 'L')
SELECT ROUND(AVG(eFG), 3) as eFG,
ROUND(AVG(OPP_eFG), 3) as OPP_eFG,
ROUND(AVG(TOV_PCT), 3) as TOV_PCT,
ROUND(AVG(OPP_TOV_PCT), 3) as OPP_TOV_PCT,
ROUND(AVG(ORB_PCT), 3) as ORB_PCT,
ROUND(AVG(DRB_PCT), 3) as DRB_PCT,
ROUND(AVG(FTA_RATE), 3) as FTA_RATE,
ROUND(AVG(OPP_FTA_RATE), 3) as OPP_FTA_RATE
FROM (SELECT bs.team_name,
AVG(eFG) as eFG,
AVG(OPP_eFG) as OPP_eFG,
AVG(TOV_PCT) as TOV_PCT,
AVG(OPP_TOV_PCT) as OPP_TOV_PCT,
AVG(ORB_PCT) as ORB_PCT,
AVG(DRB_PCT) as DRB_PCT,
AVG(FTA_RATE) as FTA_RATE,
AVG(OPP_FTA_RATE) as OPP_FTA_RATE
FROM box_score bs
WHERE game_date < '2019-03-07' AND
( (team_name = 'Miami Heat' AND WIN_LOSS = 'W') OR
(team_name = 'New York Knicks' AND WIN_LOSS = 'L')
)
) bs