-- recipe_ids not in a user's favorite which have geq favorite count than the average of the user's favorites
SELECT * FROM recipes WHERE id IN ( SELECT recipesResult.recipe_id FROM (
SELECT recipe_id, COUNT(*) AS favCount FROM user_favorites
GROUP BY recipe_id
HAVING COUNT(*) >= (
SELECT AVG(favCount2) FROM (
SELECT uf.recipe_id, COUNT(*) AS favCount2 FROM user_favorites as uf
GROUP BY recipe_id
) as favRecipeWithCounts, user_favorites as uf2
WHERE uf2.user_id = @user_id AND uf2.recipe_id = favRecipeWithCounts.recipe_id
)
) AS recipesResult
ORDER BY RANDOM()
LIMIT 6)