Falešné řešení rownum je chytré, ale obávám se, že se špatně škáluje (pro složitý dotaz musíte spojit a počítat na každém řádku počet řádků před aktuálním řádkem).
Zvážil bych použití create table tmp as select /*your query*/
.protože v případě operace create as select je rowid vytvořený při vkládání řádků přesně to, co by bylo rownum (počítadlo). Je specifikován dokumentem SQLite doc.
Po vložení počátečního dotazu stačí zadat dotaz na tabulku tmp:
select rowid, /* your columns */ from tmp
order by rowid