2017-03-15 103 views
1

完全新的蜂巢,我有一個這樣的數據庫:SQL。蜂巢。選擇中間

Cust | Visited | Purchased 
-------------------------------- 
id01 | Novem | Computer 
id02 | March | Printer 
id03 | Decem | [empty] 
id01 | April | Phone 
id02 | Augus | Laptop 
id01 | Januar| Monitor 
id01 | Febr | [empty] 
id03 | Septem| Keyboard 

你能幫我找出每個客戶購買的物品中位數?

至於平均,我想我可以做到以下幾點:

select count(*)/count(distinct(Cust)) from table where Purchased !=""; 

,但不知道如何計算中位數。

回答

1
  • 計數購買的項目的每個顧客數
  • 位數是私人的情況下百分= percentile(cnt,0.5)

select  percentile(cnt,0.5) 

from  (select  count(*) as cnt 
      from  mytable 
      where  Purchased !="" 
      group by Cust 
      ) t 
; 

2.0

+0

雖然此代碼段可以解決這個問題,[包括一個解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高你的文章的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – DimaSan