2017-03-15 66 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