2014-03-27 82 views
0

我有一个表名invoices。有一列名为userlate_fee。我试图找出与发票总数相比较的晚期发票的百分比。MySQL:获取列的平均值

他有16张发票,其中2张发票迟到。我觉得这应该是一个简单的馅饼查询,但我无法弄清楚我的生活?

+0

能否请您提供发票表的全表结构? –

回答

5

你可以使用这样的东西。它根据它的价值获得late_fee的计数。

select sum(case 
      when late_fee = 1 
      then 1 
      else 0 
      end 
     ) 
     /count(*) 
from invoices 
group 
by  user 

由于@Ravinder指出,在MySQL这也是有效的(没有在其他平台上工作,虽然):

select sum(late_fee = 1 
     ) 
     /count(*) 
from invoices 
group 
by  user 
+0

工作就像一个魅力!谢谢 – user0000001

+0

它可以简单地也是'sum(late_fee = 1)/ count(*)'。 –

+0

应该工作。这只是一个返回布尔值的比较。 –