SQL запросы PostgreSQL

Делаю ТЗ, в котором одно из заданий SQL запросы. У меня субд отказывается работать, времени на поиск причины и исправление нет. Посмотрите правильно ли сделал?

В для третьего и четвёртого задания формулы: (кол-во users в опред. день/ Все users * 100%) и (кол-во users которые зашли или зайдут / Все users * 100%)

  1. SELECT day, COUNT(uid) FROM dailyusers GROUP BY day;
  2. SELECT reg_time, COUNT(uid) FROM users GROUP BY reg_time;
  3. SELECT day FROM dailyusers , ((COUNT(uid) FROM dailyusers * 100) / COUNT(uid) FROM users ) GROUP BY day;
  4. Тут я ещё думаю, но как будет готово отредактирую вопрос

Задание из ТЗ


Ответы (1 шт):

Автор решения: Sergey Semkin

Насчёт последнего не уверен. Как ответят, скажу точно

a. Число активных пользователей в день

SELECT day, COUNT (uid) FROM dailyusers GROUP BY day;

b. Число зарегистрированных пользователей в день

SELECT reg_time, COUNT (uid) FROM users GROUP BY reg_time;

c. Однодневный классический ретеншн (классическое удержание)

SELECT d.day ((COUNT(d.uid)*100)/COUNT(u.uid)) 
FROM dailyusers AS d, users AS u 
WHERE d.date = нужная дата
GROUP BY d.day;

d. Однодневный роллинг ретеншн (скользящее удержание)

SELECT ((COUNT(SELECT d.uid FROM dailyusers AS d where заданный день < max(d.day) order by d.day)*100)/COUNT(u.uid)) 
FROM dailyusers AS d, users AS u 
WHERE d.date = нужная дата
GROUP BY day;
→ Ссылка