日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

以卖香蕉为例,从4个方面了解SQL的数据汇总

發布時間:2025/3/15 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 以卖香蕉为例,从4个方面了解SQL的数据汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

導讀:面對一個新數據集時,人們往往會關心數據中的異常值、數據的分布形式、行列之間的關系等。SQL是一種專為數據計算設計的語言,其中已經內置了許多數據匯總函數,也支持用戶編寫SQL命令實現更為復雜的匯總需求。


作者:Matt DeLand,Wagon聯合創始人與數據科學家

來源:Datartisan數據工匠(ID:shujugongjiang)



許多電腦使用Excel在面對上千行數據時已力不從心,而R較難部署在集群上運行,人眼顯然不可能直接從大量數據中總結出規律。如何才能快速理解你的數據集?SQL可以幫助你! 對數據進行統計匯總是能最快了解數據的方法。面對一個新數據集時,人們往往會關心數據中的異常值、數據的分布形式、行列之間的關系等。SQL是一種專為數據計算設計的語言,其中已經內置了許多數據匯總函數,也支持用戶編寫SQL命令實現更為復雜的匯總需求。本文以香蕉銷售相關數據為例,從4個方面介紹如何用SQL進行數據匯總。?




01 基礎匯總


我們可以通過一段很短的SQL命令實現如計算個數(count)、去重(distinct)、求和(sum)、求平均(average)、求方差(variance)等匯總需求。假設我們有一個關于香蕉交易的數據表格,需要計算每天的顧客總數(num_customers)、去重顧客數(distinct_customers)、香蕉銷量(total_bananas)、總收入(total_revenue)和每筆平均收入(revenue_per_sale),可以通過以下命令實現:



得到的結果如下:



僅通過一次命令請求,我們就可以在非常大的數據集上計算出這些重要的匯總結果。如果再加上where或join命令,我們還可以高效地對數據進行切分。當然,有些需求并不能完全由一般的SQL函數實現。




02 計算分位數


如果數據的分布存在較大的偏斜,平均值并不能告訴我們平均等待時間的分布情況。因此我們往往需要知道數據的25%、50%、75%分位數是多少。


許多數據庫已經內建了分位數函數(包括Postgres 9.4、Redshift、SQL Server)。下面的例子使用percentile_cont函數計算等待時間的分位數。該函數是一個窗口函數,可以按天進行分組計算。



計算結果如下:



其他窗口函數的結構和percentile_cont函數類似,我們可以指定對數據如何排序、如何分組。如果我們想要增加更多分組維度(如具體時間段),只需要將它們添加到partition和group by子句中。對于不支持percentile_cont的數據庫,命令會更復雜一些,但仍然可以實現。主要問題是如何將每天的訂單各自按等待時間遞增的順序排序,然后取出其中位數值。在MySQL中我們可以使用局部變量來跟蹤訂單,在Postgres中,我們可以使用row_number函數:



計算結果如下:




03 直方圖


直方圖是大致了解數據分布的好方法。我們可以用以下命令來計算每筆交易收入的分布:



由于每個不同的收入都會占用一行,以上命令的結果行數將會非常多。我們需要將收入值分組以方便我們得到數據分布的大致印象,比如分為$0-$5、$5-$10等組。如何分組并沒有一個標準的做法,需要我們自己根據需要,進行實驗來選擇。組別過多和過少都不合理,一般使用20個左右的組即可,也可以指定分組的寬度,分組越寬,分組數就越少。以下是指定分組寬度的例子:



計算結果如下:



這個命令將每個收入數據值向下取整到5的倍數并以此分組,即分組寬度為5。這種方法有個缺點,當某個區間內沒有記錄(比如在55-60美元之間沒有人購買),那么結果中將不會有這個組別,這也可以通過編寫更復雜的SQL語句來解決。如果我們想要自行選擇區間的大小,首先需要計算數據的最大值和最小值,以便我們了解需要設定多少個區間。我們還可以用以下命令來使得每個區間有一個好看的標簽:



得到的結果如下:





04 聯合分布


比較兩個不同的指標也是總結數據時的重要步驟。比如我們可能關心等待時間太久的人,最終是否會花費較少的錢。為了得到等待時間和收入之間的大致關系,我們可以使用以下命令:



得到的結果如下:



我們可能也關心諸如協方差、方差這類統計指標。大多數SQL實現已經內建了這些統計函數,比如在Postgres或Redshift中我們可以使用以下命令:



Postgres中內建了諸多匯總函數,甚至包括線性回歸。


原文:http://blog.yhat.com/posts/summarizing-data-in-SQL.html


推薦閱讀


全球100款大數據工具匯總(前50款)

大數據時代的10個重大變革

日本老爺爺堅持17年用Excel作畫,我可能用了假的Excel···

為什么要學數學?因為這是一場戰略性的投資



Q:?好了,現在你的香蕉賣出去了嗎?

歡迎留言與大家分享

覺得不錯,請把這篇文章分享給你的朋友

轉載 / 投稿請聯系:baiyu@hzbook.com

更多精彩文章,請在公眾號后臺點擊“歷史文章”查看

總結

以上是生活随笔為你收集整理的以卖香蕉为例,从4个方面了解SQL的数据汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。