3

次の表があります。

personid INT,
takeid INT,
score INT

すべての人について、takeid は負の値と正の値の両方を取ることができます。次のクエリが必要です。

1) 特定の人の正の takeid が少なくとも 1 つある場合、正の takeid のセットから max(score) を取得します。

2) すべての takeid が負の場合、特定の人物の max(score) を選択します

誰もこれを行う方法を知っていますか?

4

4 に答える 4

2

試す:

select personid, 
       case sign(max(takeid))
            when 1 then max(case sign(takeid) when 1 then score)
            else max(score)
       end as maxscore
from scoretable
group by personid
于 2013-05-28T11:43:40.567 に答える