2017-12-03 18 views
0

各グループの最初と最後の日付を取得したいと思います。 私はそれのためのドキュメントを見つけることができませんでした。..sqliteの最初と最後の関数

として基本的に表には、次のとおりです。最初と最後の関数が存在しません。もちろん、

select start, --timestamp 
     first(open) partition by start order by asc, 
     max(high), 
     min(low), 
     last(close) partition by start order by asc 
from candles_USDT_BTC 
group by round(start/1800); --group by 15 min 

皆さんのアイデアを得るためだけのために、...

答えて

0

追加を使用することができますs:

select cub.s, cub.max_high, cub.min_low, f.open, l.close 
from (select round(start/1800) as s, max(high) as max_high, min(low) as min_low, 
      min(start) as first_start, 
      max(start) as last_start 
     from candles_USDT_BTC 
     group by round(start/1800) 
    ) cub join 
    candles_USDT_BTC f 
    on f.start = cub.first_start join 
    candles_USDT_BTC l 
    on l.start = cub.last_start; 
0

あなたは、グループ内の最小/最大値を持つ行を検索するために相関サブクエリを使用することができます。

SELECT start, 
     (SELECT open 
     FROM candles_USDT_BTC AS c2 
     WHERE round(c2.start/1800) = round(candles_USDT_BTC.start/1800) 
     ORDER BY start ASC 
     LIMIT 1), 
     max(high), 
     min(low), 
     (SELECT close 
     FROM candles_USDT_BTC AS c2 
     WHERE round(c2.start/1800) = round(candles_USDT_BTC.start/1800) 
     ORDER BY start DESC 
     LIMIT 1) 
FROM candles_USDT_BTC 
GROUP BY round(start/1800); 
関連する問題