Получить проценты каждого значения, подсчитанного в SQLite? - PullRequest
0 голосов
/ 19 марта 2020

У меня есть все лотереи dr aws, хранящиеся в базе данных SQLite. Я использую этот запрос, чтобы подсчитать, сколько раз числа появляются за последние 150 драм aws для представления:

SELECT LAST_150, COUNT(LAST_150) FROM CalculatedNumbers GROUP BY LAST_150 ORDER BY COUNT(LAST_150) DESC;

LAST_150 - это столбец в моей таблице с именем CalculatedNumbers, который хранит, сколько раз данное число может быть найдено в последние 150 др aws по настоящее время. Это дает мне такой результат:

enter image description here

Что читается следующим образом : За последние 150 выпавших 18002 числа нарисованы 37 раз. 17882 числа нарисованы только 38 раз за последние 150 др aws и т. Д.

Как это сделать, чтобы показать другой столбец, который получает проценты для каждой совокупности чисел. Например, x% означает 18002, x% означает 17882, x% означает 17352 от общего числа?

Большое спасибо заранее!

1 Ответ

1 голос
/ 19 марта 2020

Вы можете использовать оконные функции:

select 
    last_150, 
    count(*) no_last_150,
    1.0 * count(*) / sum(count(*)) over () percent_last_150
from calculatednumbers 
group by last_150 
order by count(last_150) desc;

Если ваша версия SQLite не поддерживает оконные функции, то:

select 
    last_150, 
    count(*) no_last_150,
    1.0 * count(*) / (select count(*) from calculatednumbers) percent_last_150
from calculatednumbers 
group by last_150 
order by count(last_150) desc;
...