内のフィールドの合計を持つすべての項目を選択します。私はあまりfile_timeを持つすべての項目が事前に定義された範囲内でFILE_SIZEの合計を持っていることをそのようなアイテムを見つけたい私は単純なテーブル持って、指定した範囲
file_size file_id file_time
1 1 19
2 2 20
3 3 21
4 4 22
5 5 23
を。 私は次のクエリを書か:このクエリは、正しい結果を得る
SELECT * FROM test_table AS D0 WHERE
(SELECT TOTAL(file_size) FROM test_table AS D1 WHERE
D1.file_time <= D0.file_time ORDER BY file_id)
BETWEEN 1 AND 9
:
に1 1 19
2 2 20
3 3 21
をしかし、必要な項目は同じfile_timeフィールドを持っている場合、このクエリは動作しません。
file_size file_id file_time
1 1 20
2 2 20
3 3 20
4 4 20
5 5 20
が望まこのデータの結果は次のとおりです。
1 1 20
2 2 20
3 3 20
file_idフィールドは一意です。 私のSQLクエリで何が問題になっていますか?私は理解している場合
CREATE TABLE test_table (file_size INT, file_id INT, file_time INT)
INSERT INTO test_table VALUES(1,1,20)
INSERT INTO test_table VALUES(2,2,20)
INSERT INTO test_table VALUES(3,3,20)
INSERT INTO test_table VALUES(4,4,20)
INSERT INTO test_table VALUES(5,5,20)
があなたの期待された結果とは何ですか?それは私には分かりません。 –
指定された範囲のfile_sizeの合計を持つ古い(file_timeによる)項目をすべて検索します。元のクエリはOKですが、file_timeは一意です。 – user1119412
それは両方の場合であなたが望むのと同じように、うまく動作します。 –