SQLITE3> WITH cte AS (
SELECT Campaign.Campaign_ID AS "ID", Campaign.Title AS "Campagna", Session.Title AS "Titlo Sessione",
dense_rank() over ( partition by Session.Campaign_ID order by Session.Session_ID asc ) as "Sessione Numero" -- Raggruppa tutte le sessioni in Partizioni basandosi su campagna_ID Poi le numera
FROM Session
INNER JOIN Campaign ON Session.Campaign_ID = Campaign.Campaign_ID
)
SELECT "ID", "Campagna", "Titlo Sessione", "Sessione Numero" FROM cte
WHERE "ID" = :n
LIMIT :offset, :entries;