我列出了1月1日至1月7日所有NBA球员的NBA球员统计数据。表格中的数据与此处的数据完全相同:http://www.basketball-reference.com/friv/dailyleaders.cgi?month=1&day=1&year=2014
我正在尝试运行一个查询来返回来自不同球队的球员名单由于受伤而无法比赛时的统计数据。当玩家不玩时,他没有列在该日期的玩家列中。现在我有一个查询返回玩家玩的时间的统计数据:
select
t2.player,
count(t2.player) as Game_Count,
t2.tm,
round(avg(t2.minutes), 2) as Min
from
nba.player_stats t1
inner join
nba.player_stats t2 ON t1.date = t2.date and t1.tm = t2.tm
where
t1.player = 'Courtney Lee'
or t1.player = 'Ryan Anderson'
group by player;
返回
这里列出了三支球队,因为Courtney Lee在1-01-14和1-07-14之间从BOS交易到MEM。
我正在尝试返回除所选数据之外的所有数据。这包括所有其他团队(ATL,BRK等)我只想说“播放器<>”而不是“player =”并且使用distinct会起作用,但这样做会产生一些对我没有意义的结果(游戏计数不应超过5):
答案 0 :(得分:1)
为了确保我理解这个问题 - 您正在寻找所选球员在那一年没有参赛的球队的所有球员统计数据?
我打算在这里建议使用NOT IN和嵌套查询。这有点简单。此外,使用IN语句列出玩家而不是多个条件。
select
t.player,
count(t.player) as Game_Count,
t.tm,
round(avg(t.minutes), 2) as Min
from
nba.player_stats t
where
t.tm not in (
select tm from nba.player_stats p
where p.player in ('Courtney Lee','Ryan Anderson')
and p.date = t.date)
group by player;