PHP / Mysql - > AVG每个用户的账单/ paydate

时间:2017-08-04 17:07:22

标签: php mysql average datediff

我有两张桌子: t_address - >用户地址 t_billing - >使用t_address用户的帐单信息

它们通过t_billing.bil_addressref = t_address.adr_ref链接

在结算表中,我有一个字段 bil_date - >账单发出/发送的日期 bil_paydate - >账单支付日期

我不想确定“最差的付款人”,这意味着那些需要平均最长时间才能支付账单的人。

e.g:

没有。 - bil_date - bil_paydate - adr_ref
1 - 2017-01-01 - 2017-01-10 - 1
2 - 2017-02-01 - 2017-02-10 - 1
3 - 2017-03-01 - 2017-03-05 - 1
4 - 2017-04-01 - 2017-04-05 - 1
5 - 2017-01-01 - 2017-01-30 - 2
6 - 2017-03-01 - 2017-03-30 - 2
...

所以
对于adr 2,平均支付时间为29天
对于adr 1,平均支付时间为6.5天

我希望得到最糟糕的付款人的前五名结果,从最差到最差的订单。

我尝试了几个查询和想法,但没有达到正确的想法:/

有什么建议吗?谢谢,斯蒂芬。

1 个答案:

答案 0 :(得分:0)

您可以使用加入,分组依据和限制

  select adr_ref,  sum( datediff(bil_paydate,bil_date ))/ count(*) my_result
  from t_address
  inner join  t_billing on t_billing.bil_addressref = t_address.adr_ref

  group by adr_ref
  order by  my_result desc 
  limit 5