2017-09-01 6 views
1

私はいくつかのフィールド(ID、documentDate)を持つテーブルBOOKDOCUMENTを持っています。Sqliteは行間の値を比較します

documentDateの形式は「YYYY-MM-DD HH:MM:SS.SSS」です。

テーブルの各ドキュメントの日付の平均値を取得したいと考えています。

私の考えは各文書の日付を補うことです。

Exemple:行と最後の行 - 1 =それは私の最初の値 最後の行を与える - 最後の行で1 -2 =それは私の第二の値に

SELECT julianday(DocumentDate) - 
    (
    SELECT julianday(DocumentDate) 
    FROM BOOKDOCUMENT 
    WHERE Id = 25 
    ) AS daysBetweenDoc 
FROM BOOKDOCUMENT 
WHERE Id = 26 
UNION ALL 
SELECT julianday(DocumentDate) - 
     (
     SELECT julianday(DocumentDate) 
     FROM BOOKDOCUMENT 
     WHERE Id = 24 
     ) AS daysBetweenDoc 

FROM BOOKDOCUMENT 
WHERE Id = 25; 

を与えるそれを見つける作業がどのようです他の行に値を付けることはできますか? は、私はあなたがcorrelated subqueryで次の小さい日付を調べることができCTE

+0

は連続であることが保証ID値はありますか? –

+0

こんにちは、残念ながら。だから私はID値をインクリメントするためにCTEを使うことはできないと思います... – yinyin76

+0

MCVEに含まれているいくつかの例について、[mcve]を作成し、必要な出力を提供してください。 – Yunnosch

答えて

0

を使用することがあると思う:

SELECT Id, 
     DocumentDate, 
     julianday(DocumentDate) - 
     (SELECT DocumentDate 
     FROM BookDocument AS T2 
     WHERE T2.DocumentDate < BookDocument.DocumentDate 
     ORDER BY DocumentDate DESC 
     LIMIT 1 
     ) AS daysBetweenDoc 
FROM BookDocument; 
+0

素晴らしい、まさに私が探していたもの。 相関サブクエリについてはわかりませんでした。 ありがとうございます。 – yinyin76

関連する問題