亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

SQL:計(jì)算僅在上週出現(xiàn)過的ID是否未出現(xiàn)
P粉529581199
P粉529581199 2023-09-07 11:58:57
0
1
596

我正在嘗試每週滾動(dòng)了解用戶是否參加或未參加活動(dòng)。但是,我只想將他們列為“未參加”如果他們上週參加了。例如,如果使用者參加了第 1 週和第 7 週,則他們?cè)诘?2 週和第 8 週將僅被計(jì)為「未參加」。

資料的簡(jiǎn)化範(fàn)例:

事件,其中包含所有事件日期(每週)和唯一事件 ID(時(shí)間升序)

Event_Date Event_ID
2023-03-09 1
2023-03-16 2
2023-03-23 3

表格使用者顯示他們參加的活動(dòng)日期和 ID:

Event_Date Event_ID User_ID
2023-03-09 1 151
2023-03-16 2 151
2023-03-23 3 151
2023-03-09 1 299
2023-03-23 3 299
2023-03-16 2 373

我的問題:如何使用 SQL 完成以下輸出? (用戶299參加了活動(dòng)1,但未參加活動(dòng)2;用戶373參加了活動(dòng)2,但未參加活動(dòng)3)

Missed_Event_Date Missed_Event_ID#User_ID
2023-03-16 2 299
2023-03-23 3 373

我嘗試過使用

SELECT      Event_ID + 1,
            User_ID
FROM users u
WHERE NOT EXISTS (SELECT 1 FROM events WHERE u.Event_ID=e.Event_ID + 1)

沒有產(chǎn)生正確的輸出

P粉529581199
P粉529581199

全部回覆(1)
P粉818561682

假設(shè) Event_ID 增加 1,您也可以考慮以下內(nèi)容。

SELECT u.Event_ID + 1 AS Missed_Event_ID, u.User_ID
  FROM users u LEFT JOIN users v 
    ON u.User_ID = v.User_ID AND u.Event_ID + 1 = v.Event_ID
 WHERE v.Event_ID IS NULL AND u.Event_ID < (SELECT MAX(Event_ID) FROM events);

-- Query results
+-----------------+---------+
| Missed_Event_ID | User_ID |
+-----------------+---------+
|               2 |     299 |
|               3 |     373 |
+-----------------+---------+
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板