2016-03-31 20 views
-2

次の表があります。私はグループfromdate、 とfromdateごとに最小todateの結果を取得する必要があります。どうしたらいいですか?日付に基づくグループ化テーブル

|------|--------------|--------------| 
| id | fromdate |  todate | 
|------|--------------|--------------| 
| 1 | 2016-03-01 | 2016-01-05 | 
| 2 | 2016-03-01 | 2016-01-11 | 
| 3 | 2016-03-01 | 2016-01-12 | 
| 4 | 2016-03-05 | 2016-01-05 | 
| 5 | 2016-03-05 | 2016-01-11 | 
| 6 | 2016-03-06 | 2016-01-04 | 
| 7 | 2016-03-06 | 2016-01-17 | 
| 8 | 2016-03-06 | 2016-01-19 | 
| 9 | 2016-03-09 | 2016-01-04 | 
|10 | 2016-03-09 | 2016-01-11 | 
|------|--------------|--------------| 

私はこれを試してみましたが、それは私に期待される結果を与えていません。

Select * from test group by fromdate order by fromdate, todate 
+0

[ask]をお読みください。質問を編集し、[mcve]を追加します。 –

+0

あなたが試したかもしれないクエリを共有しますか? – Daenarys

+0

試行がありますか? – 1000111

答えて

1

シンプル:

SELECT fromDate, MIN(toDate) as minToDate FROM theTable GROUP BY fromDate 
+0

おっと!私はちょうどあなたの後19秒でした! –

+0

ありがとう.. thats私が望んでいたthats。 –

1

あなたはmin集計関数を使用することができます。 MySQLのドキュメントで与えられた例は、あなたが必要とするものと幾分似ています。

mysql> SELECT student_name, MIN(test_score), MAX(test_score) 
    ->  FROM student 
    ->  GROUP BY student_name; 

だから、あなたのケースのためにあることを行っている。

SELECT 
    fromdate, MIN(todate) 
FROM 
    mytable 
GROUP BY fromdate; 

はもちろんmin()を使用して最小の日付を取得する方法を示し、このSO questionの受け入れ答えを見てみましょう。

関連する問題