Untitled

 avatar
unknown
sql
a year ago
895 B
11
Indexable
WITH steps_recent AS (
    SELECT
        user_id,
        SUM(CASE WHEN DATE(updated_at) < CURRENT_DATE - INTERVAL '1 day' THEN steps ELSE 0 END) AS steps_yesterday,
        SUM(CASE WHEN DATE(updated_at) < CURRENT_DATE THEN steps ELSE 0 END) AS steps_today
    FROM user_activities
    GROUP BY user_id
),
ready_to_earn_users AS (
SELECT
    user_id
FROM
    steps_recent
WHERE
    steps_yesterday < 10000
    AND steps_today > 10000
),
partners AS (
SELECT
    bu."ID партнера 1 уровня"
FROM
    ready_to_earn_users re
JOIN
    users u ON re.user_id = u.uuid
JOIN
    bot_users bu ON u.tg_user_id = bu.id
),
tg_users AS (
SELECT
    id
FROM
    bot_users
WHERE
    "Platform ID" IN (
            SELECT "ID партнера 1 уровня"
            FROM partners
        )
)
UPDATE
    users
SET
    coins = coins + 20000
FROM tg_users
WHERE users.tg_user_id = tg_users.id;

Editor is loading...
Leave a Comment