Если вы использовали тип даты для полей даты, то что-то вроде:
SELECT AVG(
DATEDIFF(MIN(comments.created_at), posts.created_at)
)
FROM posts
INNER JOIN comments on comments.post_primary_key = posts.primary_key
Должны ли вы получить то, что вам нужно
Но, как было отмечено в комментариях, вы не сохраняете даты как даты, помня об этом, попробуйте:
SELECT AVG(
MIN(comments.created_at) - posts.created_at
)
FROM posts
INNER JOIN comments on comments.post_primary_key = posts.primary_key
Для полноты - мое последнее предложение ...
Вы можете попробовать это:
SELECT AVG( sub.timeToComment )
FROM (
SELECT MIN(comments.created_at) - posts.created_at as timeToComment
FROM posts
INNER JOIN comments on comments.post_primary_key = posts.primary_key
) as sub
Но не уверен, что это сильно отличается от подхода @Xophmeister