tft每日頭條

 > 遊戲

 > 遊戲中你不知道的遊戲細節

遊戲中你不知道的遊戲細節

遊戲 更新时间:2025-01-18 07:25:42

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)1

【面試題】

某遊戲的某促銷活動,會向玩家推薦一個道具,同時會得到該道具的折扣券。折扣券無有效期,但購買道具一次後失效。推薦一個新的道具,也會導緻舊的折扣券失效。

假設道具推薦、查看、購買行為記錄在了下面的“遊戲道具記錄表”中,包含4個字段:時間、玩家id、行為、道具id。

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)2

表中的“行為”字段的值包括:向玩家推薦道具、玩家查看道具、玩家成功付費購買道具

數據說明:

1)一個道具的折扣券失效後,玩家仍然可以以原價購買推薦的道具

2)同一個道具不會被重複推薦

3)如果玩家使用折扣券購買道具,則認為這次推薦道具->查看道具->購買道具屬于一個成功推薦過程,推薦道具->購買道具(即中途缺少該道具的查看記錄)不屬于成功推薦過程。

4)玩家可以推薦前查看道具,但不會獲得折扣券

【問題】查詢所有成功推薦過程中,該道具的第一條查看記錄。

【解題步驟】

1. 解題思路

這個業務問題一看很複雜,遇到複雜的問題,要想到用邏輯樹分析方法,将複雜問題拆解為可以解決的子問題:

1)找出所有成功推薦的記錄(成功推薦是玩家使用折扣券進行購買)

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)3

2)找出成功推薦時間與對應購買時間之間的查看記錄

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)4

3)篩選出每一次成功推薦的第一條查看記錄

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)5

2. 所有成功推薦的記錄

一次成功推薦是“推薦道具->查看道具->購買道具”這樣的過程。

1)獲取所有推薦道具的數據

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)6

記為表t1。

2)獲取所有購買道具的數據

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)7

記為表t2。

3)獲取同一個玩家同一個道具的“推薦道具->購買道具”

以“所有推薦道具的數據”為左表,使用左聯結,從“所有購買道具的數據”中獲取同一個玩家同一個道具的購買記錄(購買時間在推薦時間之後)。

由于一次推薦之後,可能存在多次購買記錄,此處使用窗口函數每次推薦之後對應的購買時間順序。

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)8

查詢結果:

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)9

以上結果記為表t3。

4)對“玩家購買時間順序”進行篩選

按照成功推薦的定義,“玩家購買時間順序”為1時,才可能成為成功推薦。

因為,購買道具一次後道具對應的折扣券會失效。

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)10

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)11

以上結果記為表tt1。

5)得到成功推薦的記錄

上一步的結果還不是成功推薦。

因為,如果“推薦道具時間”與“玩家購買時間”之間有另外的一次推薦,這次的推薦的折扣券就失效了。

查詢出“推薦道具時間”與“玩家購買時間”之間沒有其他推薦的記錄。

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)12

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)13

以上結果記為數據a1。

3. 獲取成功推薦中的查看記錄

1)獲取所有查看道具的數據

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)14

記為表a2。

2)獲取成功推薦記錄中“推薦道具時間”與“玩家購買時間”之間的所有查看記錄

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)15

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)16

同時,用窗口函數row_number()獲取了“查看時間順序”。

以上結果記為a3。

4. 獲取成功推薦中的第一條查看記錄

最後,篩選出第一次查看的記錄,并恢複成初始的數據結構。

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)17

将子查詢代入:

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)18

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)19

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)20

【本題考點】

1)考查對窗口函數的了解;

2)考查對多表聯結的了解。

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)21

遊戲中你不知道的遊戲細節(你今天玩遊戲了嗎)22

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关遊戲资讯推荐

热门遊戲资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved