基本的に、すべてのスレッドからの最後の投稿の25%が必要であり、後の操作はあなた次第だと思います。
私が正しければ、このコードはあなたのために働くはずです(MS-SQL用に書かれていて、SQLiteに簡単に移植できるはずです):
CREATE TABLE posts (
post_id INT,
thread_id INT
)
INSERT INTO posts(post_id, thread_id) VALUES (1, 1)
INSERT INTO posts(post_id, thread_id) VALUES (2, 2)
INSERT INTO posts(post_id, thread_id) VALUES (3, 2)
INSERT INTO posts(post_id, thread_id) VALUES (4, 3)
INSERT INTO posts(post_id, thread_id) VALUES (5, 3)
INSERT INTO posts(post_id, thread_id) VALUES (6, 3)
INSERT INTO posts(post_id, thread_id) VALUES (7, 3)
INSERT INTO posts(post_id, thread_id) VALUES (8, 3)
INSERT INTO posts(post_id, thread_id) VALUES (9, 3)
INSERT INTO posts(post_id, thread_id) VALUES (10, 3)
INSERT INTO posts(post_id, thread_id) VALUES (11, 3)
SELECT src.*
FROM (
SELECT post_number = (
SELECT 1 + COUNT(*)
FROM posts pp
WHERE p.post_id > pp.post_id
AND p.thread_id = pp.thread_id
),
post_id,
thread_id
FROM posts p
) src
JOIN (
SELECT thread_id, cnt = COUNT(*)
FROM posts
GROUP BY thread_id
) counts
ON src.thread_id = counts.thread_id
WHERE (CONVERT(FLOAT, src.post_number) / CONVERT(FLOAT, counts.cnt)) >= 0.75
主にpost_numberを取得するサブクエリが原因で、パフォーマンスの高いクエリではないことに注意してください。それをサポートするDBMSにとっては、OVER句を使用してはるかに優れた方法で記述できます。