1

気象データを 5 分間隔で格納するテーブルがあります。

ここで、次のように年ごとにグループ化された総雨量の結果が必要です。

2010 100 raindays
2011 120 raindays
2013 90  raindays

これは私の現在のクエリです:

SELECT date, SUM(rain) FROM $tableName  GROUP BY date HAVING SUM(rain) > 0"; 

予想通り、これにより次の結果が得られます。

2010-01-02 1.2 (mm)
2010-01-05 1.6 (mm)
2010-02-10 2.6 (mm)

これを年(日付)と日数でグループ化するには、クエリをどのように変更する必要がありますか?

ご協力ありがとうございます

午後

4

2 に答える 2

1

YEAR(date) でグループ化して、年ごとにグループ化された雨を合計できます。次に、DATE(date) 関数を使用して、時間部分なしで日数を COUNT DISTINCT できる日数をカウントします。

SELECT YEAR(date), SUM(rain), COUNT(DISTINCT DATE(date)) days
FROM $tableName
WHERE rain>0
GROUP BY YEAR(date)

ここでフィドルを参照してください。

于 2013-03-30T11:11:07.130 に答える
0

次のクエリは、各グループの最大要素を見つけたい場合に役立ちます。

select 
    e.date, e.rain
from
    TableName e
        join
    (select 
        date, MAX(rain) MS
    from
        TableName
    group by date
    Having rain > 0) m ON e.date = M.date and e.rain = m.rain
于 2013-03-30T11:17:24.360 に答える