2017-11-20 18 views
1

ための選択日付と時刻は、私が気象データベースを持っていると私は、日中の温度の最大値に達したときに、日付と時刻を取得します。MySQLの - 最大値

私は温度の最大値を得ることができますが、返される日付と時刻は、その日の最初のエントリのためのものです。

DATE(DateTime)|DateTime   |TempOutCur 
    2017-11-19|2017-11-19 00:01:19|6.7 
    2017-11-19|2017-11-19 00:06:22|6.7 
    2017-11-19|2017-11-19 00:11:25|6.7 
    2017-11-19|2017-11-19 00:16:28|6.7 
    ................ 
    2017-11-19|2017-11-19 10:50:32|10.3 (this is max of the day) 
    ................ 

クエリ

SELECT DATE(DateTime), DateTime, MAX(TempOutCur) 
FROM meteo_database GROUP BY DATE(DateTime) 

が戻っている:より明確にするために

DATE(DateTime)|DateTime   |MAX(TempOutCur) 
    2017-11-19|2017-11-19 00:01:19|10.3 

を使用すると、日付と時刻が返さ見ることができるようには正しくありません。

ありがとうございました!

+0

感謝を集計を指定することで、最大温度でサブクエリと結合使用することができます。 *質問*がありましたか?そのクエリによって返された 'DateTime'の値は不定です。それが崩壊「グループ」内の行のいずれかの値だが、それは、そのグループ内の任意の行であってもよいです。 (ONLY_FULL_GROUP_BYはsql_modeの中に含まれていない限り)、MySQL固有の拡張は、クエリを実行することを可能にします。他のデータベースは、SELECTリストではなく、GROUP BYであるため非集計( 'DateTime')のエラーをスローします。ここに記載されているように結果セットは、MySQLの仕様に準拠するように表示されます。https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html – spencer7593

答えて

0

あなたは

select DATE(m.DateTime), m.DateTime , m.TempOutCur 
from meteo_database m 
INNER JOIN (
    SELECT DATE(DateTime) my_date, MAX(TempOutCur) max_temp 
    FROM meteo_database 
    GROUP BY DATE(DateTime) 
) T on T.my_date = DATE(m.DateTime) AND T.max_temp = m.TempOutCur 
+0

@Liviuあなたは歓迎されています。.. – scaisEdge

0

一つの解決策は、WHERE句でステータスレポートのための

SELECT DATE(DateTime), DateTime, TempOutCur 
FROM meteo_database 
WHERE TempOutCur = (SELECT MAX(TempOutCur) FROM meteo_database) 
関連する問題