2016-04-25 21 views

答えて

0

あなたがやりたいものは何でも、これは私が考えることができる唯一のものです:あなたは、GROUP BY句WITH>演算子を使用して話をしている場合は

... 
GROUP BY 
    CASE WHEN A >= 1 THEN 1 
    ELSE 0 
    END 
1

select 
case when age between 0 and 20 then '0 - 20' 
    when age between 21 and 40 then '21 - 40' 
else '> 40' end age, 
sum(case when survived = 1 then else 0 end) survivors 
from rms_titanic 
group by 
case when age between 0 and 20 then '0 - 20' 
    when age between 21 and 40 then '21 - 40' 
else '> 40' 
order by 
case when age between 0 and 20 then '0 - 20' 
    when age between 21 and 40 then '21 - 40' 
else '> 40'; 

これは以下のように書くことができるあなたがGROUP BYの結果セットに>演算子を使用したい場合はトン、しかし

select 
case when age between 0 and 20 then '0 - 20' 
    when age between 21 and 40 then '21 - 40' 
else '> 40' end age, 
sum(case when survived = 1 then else 0 end) survivors 
from rms_titanic 
group by 1 
order by 1; 

あなたはHAVING句を含める必要があります:

select 
case when age between 0 and 20 then '0 - 20' 
    when age between 21 and 40 then '21 - 40' 
else '> 40' end age, 
passenger_class, 
sum(case when survived = 1 then else 0 end) survivors 
from rms_titanic 
group by 1, passenger_class having count(*) > 20 
order by 1; 
+1

なぜ-1?私はこれを信じることができない。 – MontyPython

+2

あなたが曖昧な質問に対する完全に合理的な応答であることはあなたの考えではありません。あなたを平準化しました。 –

+0

@RichBenner - 時々人々は何を求めているのか分からないことがあります。どちらが良いですか。私たちの仕事は助けることです。おそらく、質問をしている人は私たちの残りの部分と同じようにはっきりしていないでしょう。したがって、 :) – MontyPython