所以,你必須與此類似表設置:類似這樣的
create table scores(
Player varchar(20) not null,
score1 int not null,
score2 int not null
);
您的信息:
insert into scores(player, score1, score2) values('player 1', 0, 0);
insert into scores(player, score1, score2) values('player 1', 10, 20);
insert into scores(player, score1, score2) values('player 1', 20, 30);
,並在運行類似於此條件的查詢:
SELECT Player,
Avg(Case When Score1> 0 then Score1 end) AS AverageScore1,
Avg(Case When Score2> 0 then Score2 end) AS AverageScore2
FROM scores
where Score1<10 and Score2<10
GROUP BY Player
你得到這樣的輸出:
Player AverageScore1 AverageScore2
--------- --------------- -----------------
Player1 NULL NULL
但你想要的是:
Player AverageScore1 AverageScore2
--------- --------------- -----------------
是嗎?
如果是這樣,加入了 「具有」 條款將過濾掉空值記錄:
SELECT Player,
Avg(Case When Score1> 0 then Score1 end) AS AverageScore1,
Avg(Case When Score2> 0 then Score2 end) AS AverageScore2
FROM scores
where Score1<10 and Score2<10
GROUP BY Player
having Avg(Case When Score1> 0 then Score1 end) is not null and
Avg(Case When Score2> 0 then Score2 end) is not null
'HAVING AVG(案例當Score1> 0,則Score1結束)不NULL'? –
你能否給出一個會導致不包含分數的標準示例? –
@Samcd例如雖然愚蠢的一個WHERE Player ='xxx',並且沒有播放器叫做xxx – RGriffiths