Оператор SQL для возврата числа на основе предыдущих записей И сгруппированных - PullRequest
1 голос
/ 12 июня 2019

для данной таблицы с идентификатором пользователя1, идентификатором2, временем клика

Я хотел бы вернуть количество записей, когда в прошлый раз у нас была запись с userid1 = userid2 и наоборот, другими словами. Все это сгруппировано по месяцам

должно учитываться, если

userid1      userid2       clicktime
34           67            january
67           34            december

Результат должен быть таким: Day Number_of_Matches</p> <p>12/22/2016 23 12/23/2016 3 12/24/2016 33

Ответы [ 2 ]

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

Позвольте мне попытаться перефразировать,

Я бы хотел посчитать все строки за заданное время, если в предыдущий раз были строки с userid1 = userid2 и userid2 = userid1. Другими словами, событие x происходит, когда пользователь 1 нажимает на пользователя 2, если пользователь 2 ранее нажал на пользователя user1. Я хочу сосчитать все события x, сгруппированные по времени.

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

Предполагая, что вы хотите иметь одну строку для любой пользовательской комбинации, и что каждая строка имеет 2 разных идентификатора пользователя:

select case 
when userid1>userid2 then userid1
when userid1<userid2 then userid2 end as userid1, 
case 
when userid1<userid2 then userid1
when userid1>userid2 then userid2 end as userid2, 
clicktime, count(*) from table
group by 1,2,3

Если вы хотите иметь 2 комбинации, это просто:

select 
    userid1,userid2,clicktime, count(*)
    from table
    group by 1,2,3

Я предполагал, что время клика - это уникальный месяц

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