2017-09-07 15 views
0

にグループの最初と最後の行を取得します。私は、次の表を持っているのsqlite

Date  | Value 
-------------------- 
2017-01-02 | 15.6325 
2017-01-05 | 15.3285 
2017-01-11 | 15.5271 
2017-01-29 | 15.9645 
2017-02-01 | 15.3595 
2017-02-15 | 15.5214 
2017-02-20 | 15.8532 
2017-03-01 | 15.9638 
2017-03-04 | 15.8874 

私は数ヶ月ごとにグループ化されたデータの最初と最後の値を取得する必要があり、単一のSQLiteのクエリで。この例に基づいて、結果はこのようなものになります。

Month | First value | Last value 
---------------------------------------- 
2017-01 | 15.6325  | 15.9645 
2017-02 | 15.3595  | 15.8532 
2017-03 | 15.9638  | 15.8874 

を私は2つのクエリでこの結果を取得する方法を知っているが、私はsqliteの中に単一のクエリでそれを持つことが可能である方法を知っていただきたいと思います。

+0

をありがとう!作成日を編集しました –

答えて

0

あなたはcorrelated subqueriesで値を検索することができます

SELECT Month, 
     (SELECT Value 
     FROM MyTable 
     WHERE strftime('%Y-%m', Date) = Month 
     ORDER BY Date ASC 
     LIMIT 1 
     ) AS FirstValue, 
     (SELECT Value 
     FROM MyTable 
     WHERE strftime('%Y-%m', Date) = Month 
     ORDER BY Date DESC 
     LIMIT 1 
     ) AS LastValue 
FROM (SELECT DISTINCT strftime('%Y-%m', Date) AS Month 
     FROM MyTable); 
関連する問題