sql查询当天交易总额最大的用户信息_如何分析交易记录? 因为后面要分析“每种类型用户的总交易金额”,所以保留左表(用户交易记录表)中的全部用户数据。 【题目】 某商场为了分析用... - 雪球...
來源:雪球App,作者: 猴子數(shù)據(jù)分析,(https://xueqiu.com/1350621016/159703178)
因為后面要分析“每種類型用戶的總交易金額”,所以保留左表(用戶交易記錄表)中的全部用戶數(shù)據(jù)。
【題目】
某商場為了分析用戶購買渠道。表1是用戶交易記錄表,記錄了用戶id、交易日期、交易類型和交易金額。
表2是用戶類型表,記錄了用戶支付類型(微信、支付寶、信用卡等),分別有type1、type2。
要求:
1.請在?type1的用戶類型中,找出總交易金額最大的用戶。
2.篩選每個用戶的第2筆交易記錄。
3.如下表:如何實(shí)現(xiàn)表3的數(shù)據(jù)格式?
4.兩表做關(guān)聯(lián)時,其中一張表的關(guān)聯(lián)鍵有大量的null值會造成什么影響?如何規(guī)避?
【解題思路】
1.type1的用戶類型中,找出單用戶的總交易金額最大的一位用戶?
我們先來把這個業(yè)務(wù)需求翻譯成大白話:
1)表中的字段要有用戶類型、交易金額、用戶id
交易金額、用戶id在用戶交易記錄表中,用戶類型在用戶類型表中,涉及到兩個表的字段,所以需要進(jìn)行多表聯(lián)結(jié)。
觀察兩個表,得知兩表的相同字段為用戶id?,所以通過用戶id聯(lián)結(jié)兩張表。
使用哪種聯(lián)結(jié)呢?拿出《猴子?從零學(xué)會SQL》里面的多表聯(lián)結(jié)圖。
因為后面要分析“每種類型用戶的總交易金額”,所以保留左表(用戶交易記錄表)中的全部用戶數(shù)據(jù)。
查詢結(jié)果:
2)每種類型用戶的總交易金額
當(dāng)有“每個”出現(xiàn)的時候,要想到《猴子?從零學(xué)會SQL》中講過的用分組匯總來實(shí)現(xiàn)該業(yè)務(wù)問題。
根據(jù)各用戶類型、用戶id分組?(group?by),統(tǒng)計每個用戶數(shù)總費(fèi)用(求和函數(shù)sum)
查詢結(jié)果:
3)找出用戶類型=type1,總交易金額最大的用戶
用where?篩選用戶類型=type1的用戶,按照總金額降序排序(order?by?decs),找出的第一行(limit?1)記錄即為交易金額最大的用戶。
查詢結(jié)果:
2.篩選每個用戶的第2筆交易記錄?
1)題目要求查詢“每個用戶”,當(dāng)每個出現(xiàn)的時候,就要想到分組匯總(group?by或者窗口函數(shù)的partiotion??by)。
2)第2筆交易記錄,是指按照交易時間對每個用戶的交易記錄進(jìn)行排名,然后取出排名第2的數(shù)據(jù)。
又涉及到分組,又涉及到排名的問題,要想到用《猴子?從零學(xué)會SQL》里講過的窗口函數(shù)來實(shí)現(xiàn)。
所以使用分組(窗口函數(shù)partiotion?by?用戶id),并按最后交易時間升序排列(order?by交易時間?asc),套入窗口函數(shù)的語法,得出下面的sql語句:
查詢結(jié)果:
2)用where?篩選出每個用戶的第2條記錄,就是每個用戶的第2筆交易記錄
查詢結(jié)果:
3.如下表:如何實(shí)現(xiàn)表3的數(shù)據(jù)格式?
題目要求將同一用戶、不用的交易時間和交易類型多行合并為一行,用group_concat函數(shù)可解決。
sql入下:
4.兩表做關(guān)聯(lián)時,其中一張表的關(guān)聯(lián)鍵有大量的null值會造成什么影響?如何規(guī)避?
因為在關(guān)聯(lián)表中的全部數(shù)據(jù)不一定在另一張表都匹配,這樣沒有匹配到的話就會出現(xiàn)null,避免出現(xiàn)表連接出現(xiàn)null值,只要在表關(guān)聯(lián)時加一個where條件進(jìn)行判斷(not?null?),具體見下圖
【本題考點(diǎn)】
1.如何將復(fù)雜的業(yè)務(wù)問題,使用多維度拆解分析方法,翻譯成大白話的能力。
2.遇到排名問題,要想到使用窗口函數(shù)來實(shí)現(xiàn)。
3.多表聯(lián)結(jié)各個情況如何去實(shí)現(xiàn)?把上圖看懂就可以解決99%的多表聯(lián)結(jié)問題了。
總結(jié)
以上是生活随笔為你收集整理的sql查询当天交易总额最大的用户信息_如何分析交易记录? 因为后面要分析“每种类型用户的总交易金额”,所以保留左表(用户交易记录表)中的全部用户数据。 【题目】 某商场为了分析用... - 雪球...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UPlay 游戏 Monopoly Pl
- 下一篇: 小俞同学的数表