分組與聚合
複習行數與值計數、分組求和、HAVING、篩選後總額、去重計數及外層最大值。
說清每次聚合的輸入行與輸出粒度。
本節數六道給定SQLite 3.53.4任務的匹配結果,不是專業等級、百分位、僱主門檻或資格。任何正確數都能讀全部解析與四份完整指南。
五條票據行支援六個不同問題
設定含兩部門、五行票據和一個缺失數值,可分別問行數、非NULL值數、各部之和、哪個總額超過閾值及總額中的最大值。不能因都返回小數字就互換問題,先讀選擇表示式和輸入篩選再算。
空輸入求和不是數值零
新不計分例payments只有數值4,用WHERE v>9篩後選COUNT(*)、SUM(v),返回一行0|NULL:數到零條保留行,SUM無非NULL值可加,返NULL,並非取消聚合結果行。另加COALESCE是題中未做的不同選擇。
有意區分行、值與去重部門計數
COUNT(*)數輸入行,含數值NULL行;COUNT(value)忽略該缺失值;COUNT(DISTINCT dept)數兩個不同部門字串。它們單位不同,即使換資料偶然相同也不能互換。結果旁寫單位;本表部門無NULL,不引入額外情形。
WHERE先篩行,HAVING再核組
篩選求和題先只留合格數值行再SUM;HAVING題則先分給定行,再核組總額是否嚴格過線。相似數字條件換位置會改變問題。依次核保留行、組與總額,區分大於10和大於等於10。
分清內部總額與外部最大值
巢狀查詢先每部門生成一個總額並命名total,外部MAX比這些總額,不比單票值。給定資料最大單票與最大部門總額不同,宜先畫中間兩行再讀外部SELECT。小整數避開溢位及浮點問題,不建立任意生產財務計算的精度結論。
先改組成員,再改公式
在可丟棄記憶體表用虛構標籤和少量整數,預測COUNT(*)與COUNT(value)後添一條NULL再預測;接著只改一個組成員,比較其和與全部組和的最大值。執行前寫中間結果。網站不需表格上傳或私庫連線,建議練習用可隨時丟棄的合成輸入。
把正確數作為複習線索
六個匹配答案可引導複習,但總數不能說明是否給陌生報表選對粒度、完成對賬或設計高效查詢。任何正確數均給全部題解與四份全文;結果按SQLite 3.53.4核過,無百分位、專業檔、僱主門檻或證書,讀答案重測固定題組可獎勵記憶。
回顧:同一個閾值在篩行與篩組時不同
新例tickets(dept TEXT,v INTEGER)含(Elm,4)、(Elm,6)、(Pine,9)。SELECT dept,SUM(v) FROM tickets GROUP BY dept HAVING SUM(v)>8 ORDER BY dept;返回Elm|10; Pine|9。改為WHERE v>8後再GROUP BY dept,只剩Pine|9:Elm兩行各自都未過8,但合計10可使原HAVING成立。先列篩行後的輸入,再列各組總額,不把兩條查詢當作等價最佳化。原表未改變,變化來自語句表達的請求。兩條已在SQLite 3.53.4記憶體庫核對,不計分。
分項複習指南
統計匹配結果,不派開發者檔位
匹配答案計一道正確,其他有效選擇計零;每組六題,合計/24。全部有效選擇前不顯示個人正確數,無時間權重、部分分或默補缺答。4/6只是所給任務四個匹配結果,無百分位、招聘通過分或資格。
保留完整設定與逐題解釋
結果保留每段原創設定、最後語句、所選、答案及解析,零分、部分答對、全對均給四份全文。行列分隔只是顯示約定,不是額外返回值。核錯題要追蹤實際輸入及子句;公開指南給完整複習內容,不給個人成績。
宣告SQLite環境與有限輸入
每題用獨立全新SQLite 3.53.4記憶體庫和虛構輸入核驗,不是生產資料庫。方言、設定、約束、併發行為可不同,題組不建立跨引擎相同行為,也不評查詢調優、管理或真實報表。無計時,約十二分鐘是編輯估計,重測重複固定題組。
原創資料、查詢與解析
費馬編寫表資料、問題、干擾項、解析及指南,連結文件支援選定規則,不搬其例子或專有招聘題。本獨立練習無廠商背書或認證。程式碼按轉義文本顯示,選擇在本地核對,不執行訪問者查詢或發給所連資料庫。

