SQL - Найти% пользователей, совершивших покупку в феврале 2020 г. - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть 2 таблицы:

Table A: User (users who made purchase) - user_id, date, product_id
Table B: Country - user_id, country

Я хочу узнать процент пользователей в США, которые совершили покупку в феврале

Я думаю, что приведенный ниже запрос должен работать, но я получил предупреждение от моего друга о том, что оно может работать не так, как ожидалось (может получить дополнительные записи / строки) .. Так что я просто хотел дважды проверить здесь экспертов:)

select count(distinct b.user_id) / count(distinct a.user_id)
from country a
left join user b on a.user_id = b.user_id and date_trunc('month',date) = '2020-02-01' --don't worry about the date format
where a.country = 'US'

Спасибо!

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете использовать условное агрегирование

select (count(distinct case when date_trunc('month',date) = '2020-02-01' then u.user_id) * 1.0 /
        count(distinct u.user_id)
       ) as ratio
from country c join
     user u
     on c.user_id = u.user_id a
where c.country = 'US'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...