SQLite: получение относительного процента по столбцу


Эта задача является типовой и очень часто используемой в SQL

К примеру: посчитать % заработной платы от суммы всех зарплат


Решение с подзапросом (классическое, медленное):

SELECT
    PERSON,
    SALARY,
    SALARY / (SELECT SUM(SALARY) FROM EMPLOYEE) as PERCENT
FROM EMPLOYEE
ORDER BY ID;

Решение с оконной функцией (быстрое, без подзапроса):

SELECT
    PERSON,
    SALARY,
    SALARY / SUM(SALARY) OVER () as PERCENT
FROM EMPLOYEE
ORDER BY ID;