Бинарный столбец SQL, если пользователь играл

0

У меня есть данные в формате

|user_id|week_id|betId|
|1|1|...|
|1|1|...|
|1|3|...|
|2|2|...|
|2|3|...|

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

|week_id|user_id|did_play|
|1|1|1|
|1|2|0|
|2|1|0|
|2|2|1|
|3|1|1|
|3|2|1|

Может кто-нибудь объяснить, как будет выглядеть запрос SQL для этого

Мне удалось получить счет для каждого пользователя за каждую игровую неделю, используя:

SELECT user_id, week_id, count(user_id)
FROM game_slips 
GROUP by week_id, user_id

Я просто хочу превратить счет в двоичный столбец для воспроизведения/не

Теги:

1 ответ

0

Вы можете сгенерировать все строки, используя cross join а затем преобразовать в логическое:

select u.userId, w.weekId, (count(t.userId) > 0) as did_play
from (select distinct userId from t) u cross join
     (select distinct weekId from t) w left join
     t
     on t.userId = u.userId and t.weekId = u.weekId
group by  u.userId, w.weekId

Ещё вопросы

Сообщество Overcoder
Наверх
Меню