SQL 與 Python 廣告科技面試題:完整指南

最後更新: 8月2026
  • 廣告科技領域的面試主要考察中級 SQL、Python(含 pandas)以及分析能力。
  • 掌握 SQL 中的 JOIN、GROUP BY、子查詢和視窗函數以及 pandas 中的等效函數至關重要。
  • 了解準確率、F1 或 ROC-AUC 等模型評估指標,對於進階分析職位來說具有重要價值。
  • 有效的準備方法包括理論學習、大量的實踐練習以及學習如何大聲解釋推理過程。

廣告科技面試題:SQL 與 Python

如果您正在準備面試, 廣告技術數位分析或數據分析師遲早你都會面臨令人膽寒的技術測試。公司會藉此檢驗你是否真正掌握了履歷表上列出的技能:用 SQL 提取數據,用 Python 處理和分析數據,以及具備一定的分析思維能力,以免在眾多表格和腳本中迷失方向。

好消息是,技術面試並不神秘:它們通常總是圍繞著相同的問題。 SQL 程式碼區塊、Python 和模型評估如果你徹底掌握了基本原理,透過實際練習進行練習,並學會解釋你的推理過程,你就能比其他考生擁有顯著優勢。

為什麼技術面試令人恐懼(以及如何緩解恐懼)

人工智慧參數
相關文章:
人工智慧的參數及其如何塑造模型

在廣告科技領域的資料分析師或產品分析師職位中,技術面試通常會結合以下幾個面向: 概念性問題與現場實踐練習他們可能會要求你解釋任何事情,從 SQL 子句的作用到解決有關程序化廣告活動資料的商業案例。

通常情況下,你會從三個方面接受評估: 中級 SQL (JOIN、GROUP BY、子查詢、視窗函數) 面向資料的 Python (pandas、清理、聚合、合併)以及您的能力 解釋結果並傳達研究結果他們不是要你成為資深資料科學家,而是要你能夠以穩健可靠的方式處理資料。

許多考生常犯的錯誤是只注重記憶文法而忽略了其他面向。 練習完整的練習這些題目與你在 HackerRank、StrataScratch 等平台或公司內部測驗中遇到的題目類似。你的目標應該是,在面試前已經解決過幾十個非常相似的查詢和腳本。

廣告技術和資料分析師面試中通常需要具備 SQL 水準。

在廣告科技或數位行銷領域擔任分析師職位,公司希望你精通以下幾個方面: 經典關係型 SQL從多個表中提取數據,進行合併、分組和篩選,並建立有用的指標。無需資料庫管理技能,但應能熟練處理中等複雜程度的查詢。

測試中通常會包含混合查詢。 INNER JOIN、LEFT JOIN、WHERE 子句篩選、GROUP BY 子句聚合 以及一些關於具有 HAVING 的聚合體的條件。從那裡,在稍微高級的位置上,它們進入非常常見。 子查詢和視窗函數 用於排名、累計總數和行與行比較。

在廣告科技領域,你很可能需要回答一些業務問題,例如「哪些廣告系列的點擊率高於行業平均水平?」或「哪些發布商的展示量較上月有所下降?」高效地解決這些問題通常需要一定的專業知識… 相關子查詢和視窗函數.

常見的 SQL 基礎問題(以及如何解答)

幾乎所有以數據為導向的技術面試都包含一個關於…的部分。 SQL的基本理論問題他們不是想陷害你,而是為了確保基礎牢固。

最常被提及的問題之一是以下兩者之間的差異: 地點和擁有最清晰的解釋方式是說 WHERE 過濾器 分組前的各個行同時擁有過濾器 已新增的群組此外,您也可以提到聚合函數(COUNT、SUM、AVG…)的條件應該放在 HAVING 子句中,而不是 WHERE 子句中。

另一個經典問題是,哪些類型的 註冊 以下是幾種不同的連接類型及其適用情境:INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN,以及在某些情況下使用的 CROSS JOIN 或自連接。 LEFT JOIN 廣泛應用於資料分析,尤其是在需要維持… 整個主宇宙 (例如,所有使用者)即使在輔助表中沒有關聯的記錄(例如,購買記錄)。

基本 SQL 查詢及其邏輯範例

為了讓您了解所謂的“最低合理水平”,您可以將其理解為能夠從記憶體中編寫查詢語句,例如: 選擇特定列、篩選行並對結果進行排序從最基本的層面來說,典型的問題是:如何從表中提取所有列,如何只選擇某些列,或如何使用 AS 應用可讀別名。

他們詢問你有關該條款的問題也是正常的。 在某些情況下 如何結合使用 AND、OR 和 NOT,或如何使用比較運算子(<、<=、>、>=、=)比較數值和日期。許多公司都強調以以下方式篩選: 在這種情況下,僅僅使用等號是不夠的,還需要使用 IS NULL 或 IS NOT NULL。

另一個經典的例子是文字過濾器。 LIKE 以及使用通配符 % 和 _ 的模式。例如,尋找名稱包含特定單字的行銷活動,或尋找電子郵件地址以特定網域結尾的使用者。您應該解釋這一點。 LIKE '%text%' 在鏈條的任何位置尋找規律。

最後,這個基本模組通常包括如何 使用 UPDATE 更新記錄 並使用 WHERE 子句篩選出哪些行被修改,以及如何修改。 使用 DELETE FROM 刪除行 此外,也要使用清晰的條件。務必強調使用特定 WHERE 子句的重要性,以免意外破壞半個表。

中間查詢:GROUP BY、HAVING、子查詢和 UNION

一旦你晉升到初級職位以上,幾乎所有公司都會開始評估你是否掌握了以下技能的組合: GROUP BY、聚合函數和帶有 HAVING 的聚合篩選器您將每天使用此工具產生廣告活動、受眾或創意素材的效果報告。

  程式設計中使用邏輯運算子的 8 個絕妙技巧

它的工作原理如下:GROUP BY 子句按一個或多個列對行進行分組,您可以將以下操作應用於這些組: 求和、計數、平均值、最小值、最大值 計算指標。 HAVING 語句稍後會引入,用於僅保留符合特定條件的群體,例如銷售額超過一定門檻的客戶。

另一個反覆出現的主題是 子查詢查詢中的查詢。這些查詢通常用於根據先前步驟中計算的值進行篩選,例如選擇銷售額高於全球平均水平的客戶或展示次數高於 90% 分位數的廣告活動。

他們也常問你以下兩者的差別: 工會和所有工會UNION 函數將兩個具有相同模式的結果集合併,並刪除重複項;UNION ALL 函數執行相同的操作,但保留所有行,即使它們重複出現。在資料分析中,出於效能考量以及希望保留所有原始記錄,通常會優先選擇 UNION ALL 函數。

視窗函數:SQL 的另一個飛躍

窗口函數 它們已成為一定程度的技術測試的標準,尤其是在廣告技術相關職位中,需要分析一段時間內的趨勢、廣告系列排名或累積投資。

關鍵思想是視窗函數計算一個值。 與目前行相關的行集合但不會像 GROUP BY 那樣合併結果。也就是說,你仍然可以看到每一行數據,但同時也會看到根據一個數據「視窗」計算出的匯總結果。

典型的語法是使用函數(SUM、AVG、RANK 等),後面跟著 OVER,並在 OVER 中定義分區(PARTITION BY)和排序(ORDER BY)。例如,計算銷售人員的銷售排名或每日累積展示次數。

如果你想展現流利的技能,建議熟練以下功能: 排名、密集排名、行號、落後和領先它們對於根據活動效果對活動進行分類、將每個時期與前一個時期進行比較,或識別關鍵指標的年度變化都非常有用。

CTE、累計總數和移動平均值

在現代面試中,SQL程式碼的可讀性備受重視。因此,你常被問到相關問題。 CTE(公共表表達式)CTE 本質上是一種命名的臨時表,使用 WITH 定義,僅在查詢執行期間存在。

CTE 用於將複雜查詢分解成多個部分。 邏輯區塊 並重用中間結果。例如,您可以先在 CTE 中計算每個廣告活動的每日指標,然後在主查詢中對該結果執行額外的聚合或篩選操作。

另一個非常典型的練習是計算a 累計總額(運行總額) 使用 SUM 作為視窗函數。在廣告科技領域,經常需要提供累積展示次數、點擊次數或支出金額,以了解廣告活動隨時間推移的發展。

與此相關的還有 移動平均線這些方法將平均值作為視窗函數應用於偏移後的行幀(例如,前兩個日期和當前日期)。這是一種平滑時間序列和檢測趨勢的簡單方法,無需過度依賴每日峰值。

資料分析師通常需要具備一定的 Python 水平

在大多數資料分析師職位(包括廣告科技職位)中,公司並不期望你成為機器學習專家,但他們確實期望你對該主題有很好的掌握。 Python實戰及pandas教程通常情況下,你會被要求載入資料集、清理資料集、轉換資料集,並取得簡單的指標或視覺化結果。

Python 測試通常專注於以下操作: 從 CSV 檔案讀取數據空值和列類型檢查、行篩選、建立新列、使用 groupby 進行聚合以及 DataFrame 之間的連接。在許多情況下,語句幾乎與 SQL 部分完全相同,只是格式不同。

分析師測試中通常不會要求從零開始建立複雜的模型,但他們可能會重視你的這方面能力… 與 scikit-learn 連接 訓練一個基本模型,更重要的是,學習衡量其表現的基本指標。

你應該掌握的 pandas 基本操作

要輕鬆透過任何 Python 資料練習,你必須熟練 DataFrame 的基本操作。第一步通常是載入一個檔案。 讀取_csv 並使用 head()、info() 或 describe() 等方法來探索結構。

清潔部分 空值 它也經常出現在以下情況:使用 isnull().sum() 計算每列中空值的數量,決定是否使用 dropna() 刪除整行或整列,或使用 fillna() 填入缺失值,例如使用列的平均值或中位數。

至於篩選器,你需要根據數值或類別列建立條件,例如選擇銷售額超過特定金額的行,或選擇符合多個條件的行,並使用 & 和 | 運算子組合。關鍵在於知道如何編寫篩選器。 df 毫不猶豫。

解釋 通過...分組 在 pandas 中,這直接等同於 SQL 的 GROUP BY 子句。您可以按一個或多個欄位進行分組,然後套用諸如求和、平均值、計數等聚合操作。必須使用 `groupby('column').agg()` 語法。

資料框之間的連接和合併

就像掌握 SQL 中的 JOIN 操作至關重要一樣,掌握 pandas 也是必須的。 pd.合併公司會想看看你是否知道如何連接具有共同鍵的資料集,例如,將使用者表與事件或購買記錄表連接起來。

合併函數接收兩個待合併的 DataFrame、鍵列(on)和連接類型(how),連接類型可以是“left”、“right”、“inner”或“outer”,就像在 SQL 一樣。在數據分析中,它主要用於… 左連接 保留主表並新增來自輔助表的屬性或指標。

  程式語言教學:入門及進階完整指南

在訪談中,最好提及一些細節,例如按鍵兩側出現重複鍵時該如何處理,或如何處理列名與參數後綴衝突的情況。這能展現出更高的成熟度。

典型的、更偏理論性的Python問題

除了熊貓之外,許多訪談還包括一個關於熊貓的簡短片段。 關於 Python 的常見問題 旨在檢驗你對這門語言的理解。這些問題通常是關於語言特性、記憶體使用、資料類型或少量語法知識的簡短問答。

反覆出現的主題之一是 自動記憶體管理 在 Python 中,記憶體管理是基於使用者不直接存取的私有堆和負責釋放不再有引用物件的垃圾回收器。

他們也常會要求你進行比較。 Python 與 Java並非要宣布誰是贏家,而是為了表明你理解它們之間的區別:Python 更具動態性,語法更簡潔,非常適合原型設計和數據科學,而 Java 則往往在企業和高性能生態系統中佔據主導地位。

其他常見問題都圍繞著… lambda表達式 (用於簡單操作的匿名函數)、將物件序列化為位元組並檢索它們的序列化/反序列化過程,或者列表和元組之間的區別,其中前者是可變的,用方括號定義,後者是不可變的,用圓括號定義。

面試中更多關鍵的Python概念

人們常問你如何… 刪除或複製對象 在 Python 中,通常只需提及可以使用 `del` 語句刪除引用,淺拷貝使用 `copy.copy()` 完成,而深拷貝需要 `copy.deepcopy()` 即可。

另一個可能出現的概念,尤其是在更多後端設定檔中,是所謂的 狗堆效應這描述了許多用戶或進程同時攻擊資源(例如網站或快取)導致系統飽和的場景。

關於生態系統,您可能還會發現以下問題: 可與 Python 一起使用的資料庫最明智的做法是提及一些流行的資料庫,如 MySQL、PostgreSQL、SQLite、MongoDB 或 Oracle,並說明 Python 通常可以很好地與各種關係型和 NoSQL 引擎整合。

最後,常常會出現一些較簡單的問題,例如: 訂購一本字典 使用 sorted on items,什麼是命名空間以及它的用途(將名稱與不同作用域中的物件關聯起來),或者如何使用 subprocess 模組和 run() 或 Popen() 等函數啟動子程序。

Python 模型評估指標:您應該了解的最低限度知識

雖然很多分析師職位並不要求你設計深度學習架構,但熟悉這些架構是很常見的。 評估分類模型的基本指標尤其是當該職位涉及廣告科技領域的數據產品、廣告活動歸因或詐欺偵測時。

起點是 混淆矩陣本文總結了二元或多類分類器的成功與失敗之處。在二元分類中,結果可分為真陽性 (TP)、真陰性 (TN)、假陽性 (FP) 和假陰性 (FN)。理解這四個類別至關重要。

諸如矩陣之類的指標都是由此衍生出來的。 準確性即正確答案佔總答案的百分比; 精確 (TP/陽性預測)和 回憶或敏感性 (TP/實際陽性病例數)。當班級人數不平衡時,最後這兩個因素尤其重要。

La F1分數 它結合了準確率和召回率,並使用調和平均值進行計算,對過低的準確率或召回率值進行懲罰。在假陽性和假陰性都會造成損失的場景中,例如詐欺檢測、線索評分或疾病檢測,這是一個非常常見的指標。

其他進階指標:ROC曲線下面積、對數損失、傑卡德係數等

對於數據科學或行銷分析方面要求較高的職位,公司會檢視你是否掌握更高階的指標,例如 中華民國此指標衡量 ROC 曲線下的面積,反映模型區分類別的能力。

ROC曲線表示不同決策閾值下真陽性率(召回率)與偽陽性率(1-特異性)之間的關係。隨機模型的曲線會落在對角線上,而好的模型會更接近左上角。曲線下面積越大,模型的判別能力越好。

另一個常用的指標是 對數損失(logloss)這評估預測機率的質量,對過度自信導致的錯誤給予嚴厲懲罰。一個完美的模型的對數損失為0,通常情況下,對數損失越低越好。

他們可能還會問你一些關於…的問題。 傑卡德指數它衡量兩個集合之間的相似度,方法是用交集的大小除以並集的大小。它常用於評估分類器、分割工具和推薦系統等。

在某些情況下,會提到圖表。 增益和海拔這些指標顯示了僅使用部分人群(例如,模型評分最高的 20% 用戶)就能吸引多少目標受眾。這在行銷中被廣泛用於決定優先定位哪些目標群體。

柯爾莫戈羅夫-斯米爾諾夫檢定、基尼係數與深入評估

如果公司非常注重評分或風險模型,則可能會出現以下指標: 柯爾莫哥洛夫-斯米爾諾夫 (KS) 統計量它衡量正負分數分佈之間的分離程度。

KS 值接近 100(以百分比表示)表示模型幾乎完美地區分了兩個群體;接近 0 的值則表示模型的區分能力與隨機猜測無異。實際上,現實世界中的模型通常介於兩者之間,需要相互比較以選擇最佳模型。

  什麼是 PyQt,為什麼它是使用 Python 創建圖形介面的最佳選擇?

El 基尼係數 這是另一個從 ROC-AUC 衍生出來的指標,公式為 Gini = 2 × AUC – 1。它在信貸和保險領域非常流行,也被解釋為不平等的衡量標準:基尼係數越高,模型將真正陽性結果集中在最高分的能力就越強。

在更進階的面試中,他們可能會要求你解釋如何使用 Python 來實現這些指標。 scikit學習 (例如,混淆矩陣、準確率、ROC AUC 分數、F1 分數…)並根據問題的性質和類別不平衡情況,說明何時使用每個指標。

技術面試中如何整理你的回答

除了你寫的程式碼之外,面試官還會密切注意以下方面: 你的想法和你的解釋方式即使你知道正確的答案,結構混亂的回答也會讓你顯得比實際資歷淺。

回答技術問題的一個非常有用的提綱如下:首先解釋… 一句話概括:概念然後它貢獻了一個 一個具體的例子 (最好與您的某個實際項目相關),並且,如果適用,請提及 替代方案或細微差別這同樣適用於 SQL、Python 或模型指標。

例如,如果有人問你 CTE 是做什麼用的,你可以說它是一個命名的臨時子查詢,可以提高複雜查詢的可讀性,還可以補充說,當你需要多次重用中間結果時,就可以使用它,並提到在某些情況下,即使嵌套子查詢不太清晰,它也可以被嵌套子查詢所替代。

這也是關鍵 思考高聲如果你遇到困難,不要保持沉默:把你正在嘗試做的事情、你缺少哪些資訊、你做了哪些假設都說出來。這有助於面試官了解你的思考過程,有時甚至能給你一些線索或澄清,讓你更容易繼續前進。

技術數據面試中最常見的錯誤

許多候選人被淘汰並非因為他們缺乏 SQL 或 Python 知識,而是因為多種因素的綜合作用。 具體準備不足和溝通錯誤為了避免犯錯,明確常見的錯誤非常重要。

首先是 死記硬背而不理解如果你不能解釋在什麼情況下會使用這些工具,或者為什麼它們比其他替代方案更可取,那麼即使了解 RANK 或 lambda 函數的語法也用處不大。

另一個非常常見的錯誤是 未對數據品質進行探究 在練習中,如果你拿到資料集,在加入數值之前,最好先檢查是否有空值、重複值或極端值,這些都可能扭曲分析結果。這體現了良好的判斷力和實務經驗。

它還會處以重罰。 不要問澄清問題例如,在廣告活動的商業案例中,詢問是否存在季節性因素、感興趣的時間段、指標是按用戶還是按展示次數計算等等,都是很有意義的。保持沉默和妄下結論往往會導致最終的解決方案與面試官的預期不符。

最後,避免「過度編碼」:當查詢或腳本可以更簡單時,卻創造了不必要的複雜解決方案。在實際工作環境中,你的解決方案的價值在於其簡潔… 清晰、易於維護且高效它看起來不像個謎題。

為期兩週的密集訓練計劃

如果面試前時間有限,你可以製定一個精簡的學習計劃,涵蓋三個關鍵領域:SQL、Python(含pandas)和應用實作。 14天不可能讓你創造奇蹟,但你可以帶著… 穩固的水平和合理的信心.

頭幾天最好專注於… 從零基礎到中級 SQL複習基本語法、JOIN、GROUP BY、子查詢和常用視窗函數。花時間閱讀範例並編寫自己的查詢。

第二階段,重點是 大熊貓資料載入、清洗、篩選、分組、合併,以及使用 matplotlib 或 seaborn 進行一些簡單的視覺化。你不需要建立複雜的儀表板,但你需要能夠在 Python 中實現與 SQL 中相同的轉換操作。

然後留出幾天時間來做這件事。 在平台上進行實踐練習 類似 HackerRank 或技術面試題庫。目的是讓你熟悉題型、時間限制以及在受控環境下編寫程式碼的壓力。

最後,不妨試試一兩個。 完整面試模擬使用公開資料集,提出合理的業務問題,使用 SQL 或 Python 解決這些問題,並大聲解釋你的整個推理過程,從最初的探索到最終的結論。

透過理論複習、指導練習和實際練習的良好結合,你將帶著紮實的基礎迎接面試。 中級 SQL 和 Python,用於資料分析和模型指標這正是大多數廣告技術和數據分析公司所期望看到的。