Запрос, который определяет% правильных просмотров в день, которые привели к совпадению - PullRequest
0 голосов
/ 11 июня 2019

Как найти% правильных ударов в день, которые привели к совпадению.Совпадение происходит, когда пользователь A правым пальцем на пользователя B, а пользователь B правым пальцем на пользователя A.

Вот пример данных:

swiping_user_id   swiped_on_user_id      swipe_at            swipe_type
1 1958315            7247259         2015-03-15 00:01:05      right
2 5823050            8732832         2014-06-10 05:12:05      left
3 7948392            6767291         2015-08-10 12:45:01      right

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Если вы хотите соотношение, то вы можете сделать:

select count(*) as num_right_swipes,
       count(st2.swipe_type) as num_matches,
       count(st2.swipe_type) * 1.0 / count(*) as ratio
from SwipeTable st1 left join
     SwipeTable st2
     on st2.swiping_user_id = st1.swiped_on_user_id and
        st2.swiped_user_id = st1.swiping_on_user_id and
        st2.swipe_type = st1.swipe_type
where s2.swipe_type = 'right';

Это предполагает, что считывания являются уникальными (то есть не два "правильных" пролистывания для лица A к человеку B).Если это не так, вы должны задать новый вопрос и объяснить, как обрабатывать дубликаты.

0 голосов
/ 11 июня 2019

В этом запросе будет указано количество совпадений, которые привели к совпадению:

select count(*) matchedSwipes
from SwipeTable st1
join SwipeTable st2 on 
st1.swiping_user_id = st2.swiped_on_user_id and
st2.swiping_user_id = st1.swiped_on_user_id and
st1.swipe_type = st2.swipe_type
where s1.swipe_type = 'right'

Затем просто получите общее количество ударов и разделите количество сопоставленных ударов на это общее количество.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...