iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
自我挑戰組

資料庫二年級:練習AdventureWorks範例資料庫系列 第 18

[第十八天]辣個應用題

  • 分享至 

  • xImage
  •  

昨天結束時,
我放了三個題目作為結尾:

  1. 有多少位匿名的購買者,且年度消費金額再十萬以上(即Person資料表無資料者)
  2. 以及匿名消費的總金額
  3. 選出消費金額最高的前100名貴賓姓名,準備寄送週年慶優惠資訊

第三題我們會使用到EXCEL幫我們把名字組合起來,
所以會在明天有詳細的說明。

這三個題目是我從自己工作常撈的報表改寫出來的,
在職場上應該算是重要的基礎題目,
今天一起來解看看這些題目吧!

第一題:年度消費金額在十萬以上的匿名購買者

如果資料表用「年度消費金額」做排序,
用原始的看圖說故事方法,
我們也能找出這些購買者:
https://ithelp.ithome.com.tw/upload/images/20220911/20152049I2vr47Z6UO.jpg

但這樣不行,
要寫出一些語法才行。(強迫!)

只要將昨天全部查詢出來的語法,
加上一句「年度消費金額大於十萬」,
再加上一句「匿名購買」(沒有BusinessEntityID),
就完成了。

  SELECT *
  FROM [Person].[Person] P
  FULL JOIN @tempTable T ON T.cID = P.BusinessEntityID
  WHERE totalSpent >= 100000 --「年度消費金額大於十萬」
  AND BusinessEntityID IS NULL --「匿名購買」
  ORDER BY totalSpent DESC

https://ithelp.ithome.com.tw/upload/images/20220911/20152049D1qKbhdVBn.jpg

第二題:所有匿名購買者的金額加總

在家總之前,
我們先看看有多少位匿名購買者(不論金額大小)。

  SELECT *
  FROM [Person].[Person] P
  FULL JOIN @tempTable T ON T.cID = P.BusinessEntityID
  WHERE BusinessEntityID IS NULL
  ORDER BY totalSpent DESC

這裡我們可以發現有4715位匿名的購買者,
金額從大到小排列出來的結果:
https://ithelp.ithome.com.tw/upload/images/20220911/20152049akSkSOk0vD.jpg

再來我們試著加總(SUM),並用比數(COUNT)來做double check:

  SELECT COUNT(*) 比數
         ,SUM(totalSpent) 總金額
  FROM [Person].[Person] P
  FULL JOIN @tempTable T ON T.cID = P.BusinessEntityID
  WHERE BusinessEntityID IS NULL

https://ithelp.ithome.com.tw/upload/images/20220911/20152049CZSZbhB3w5.jpg

驚人發現的是「匿名者的消費金額」竟然有這麼多!
在我的公司裡,
因為這些匿名消費的金額不會列入公司集點的計算,
所以會替公司省下一些錢。
詳細的情形我並不是很了解,
畢竟我只是個整理報表的小妹(淚)~

明天我們會再一起來整理貴賓名單,
感謝今天閱讀的大家,歡迎指教~


上一篇
[第十七天]佔存表之2:應用題考考你
下一篇
[第十九天]應用題第三題:ISNULL
系列文
資料庫二年級:練習AdventureWorks範例資料庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言