2017-11-30 7 views
0

に私はprecipitation_fullテーブルがあり、スキーマを使用するグループSQL

station_id 
    day 
    precipitation 

を以下していることでは今、私がして、グループで> 75平均降水を持ってstation_id年代を取得したいです。私はjupyterにこのコードを使用しますが、私の結果は正しくありません。

select station_id 
from precipitation_full 
group by station_id 
having avg(precipitation) > 75 

私は、クエリによっておよびネストされたグループでこれを行うことができますどのように?

+0

「jupyter」はこれとは関係ありません。タグを削除しました。 –

+0

"私の結果が間違っている"とはどういう意味なのかを記述する。何を手に入れましたか?なぜそれは間違っているのですか?あなたは何を期待しましたか? –

+0

@BaconBits私はただ1つのstation_idを与えますが、回答には多くのstation_idがあります – hanie

答えて

0

このようなものをお探しですか?

SELECT * 
FROM precipitation_full 
WHERE station_id IN (
     SELECT station_id 
     FROM precipitation_full 
     GROUP BY station_id 
     HAVING AVG(precipitation) > 75 
    ) 
1

これを試してみてください:

SELECT station_id, AVG(precipitation) 
FROM precipitation_full 
GROUP BY station_id 
HAVING AVG(precipitation)>75 
+0

このコードは私にAVG以外のものを与えません – hanie

1

James5 "答えは右に見えます。私はあなたがSql Serverを使用すると仮定私の答えでは

;with _intermediate as (
    select 
     *, 
     avg(precipitation) over (partition by station_id) as AveragePrecipitation 
    from precipitation_full 
) 
select 
    station_id, 
    [day], 
    precipitation 
from _intermediate 
where 
    AveragePrecipitation > 75 

:しかし、あなたはすべての行(だけでなく、ユニークなstation_idsを)したい場合は、これを使用します。

関連する問題