SELECT 'active-task' AS activityType, CAST(task.id AS TEXT) AS activityId, CAST(task.user_profile_id AS TEXT) AS userProfileId, CAST(task.map_id AS TEXT) AS mapId, available.task_data_asset_path AS subject, task.sequence_index AS sequenceIndex, NULL AS occurredAt, CASE WHEN available.was_ever_completed = 1 THEN 'completed-before' ELSE 'active' END AS state FROM active_task active JOIN tracking_data_set task ON task.id = active.id JOIN available_task available ON available.id = active.available_task_id WHERE (:userProfileId IS NULL OR CAST(task.user_profile_id AS TEXT) = :userProfileId) ORDER BY task.id DESC LIMIT COALESCE(:limit, 500)