如何進(jìn)行多條件判斷?學(xué)會(huì)這個(gè)成數(shù)分大牛

【面試題】某公司數(shù)據(jù)庫里有3張表,銷售訂單表、產(chǎn)品明細(xì)表、銷售網(wǎng)點(diǎn)表
”銷售訂單表”記錄了銷售情況,每一張數(shù)據(jù)表示哪位顧客、在哪一天、哪個(gè)網(wǎng)點(diǎn)購買了什么產(chǎn)品,購買的數(shù)量是多少,以及對應(yīng)產(chǎn)品的零售價(jià)

“產(chǎn)品明細(xì)表”記錄了公司產(chǎn)品的詳細(xì)信息

“銷售網(wǎng)點(diǎn)表”記錄了公司的銷售網(wǎng)點(diǎn)

銷售訂單表、產(chǎn)品明細(xì)表、銷售網(wǎng)點(diǎn)表字段之間的關(guān)系如下
銷售訂單表和產(chǎn)品明細(xì)表通過“產(chǎn)品”字段關(guān)聯(lián),銷售訂單表和銷售網(wǎng)點(diǎn)通過“交易網(wǎng)點(diǎn)”關(guān)聯(lián)
【問題】查找既購買過ProductA又購買過ProductB,但沒有購買ProductC的用戶人數(shù),并計(jì)算平均客單價(jià)
【解題思路】
需要把滿足三個(gè)條件的用戶查找出來:
1)買過ProductA
2)買過ProductB
3)沒有購買ProductC

我們把上一步的查詢結(jié)果記錄為臨時(shí)表a。然后,再用聚合函數(shù)計(jì)算顧客人數(shù),平均客單價(jià)

我臨時(shí)表a的SQL帶入上面SQL里,就是最終的SQL:

查詢結(jié)果:

【本題考點(diǎn)】
1.將多條件轉(zhuǎn)化為SQL的能力
2.in的用法,SQL中in常用于where表達(dá)式中,其作用是查詢某個(gè)范圍內(nèi)的數(shù)據(jù)
如果字段范圍比較多,可以使用and或or運(yùn)算符。如果要排除、否定某個(gè)范圍前面加上not,為not in
3.聚合函數(shù)的使用
給大家推薦Eva老師的自動(dòng)化辦公公眾號:

猴子數(shù)據(jù)分析干貨知識(shí):
