2017-07-25 31 views
-1

我卡在这个问题: 大家好(不知道为什么它没有在第一行出现......)工作算术运算SQL SELECT

我有2个表:

-factures (invoices) 
-commandes_clients (orders) 

每个表格包含独特的id_client

我试图让和排序依据发票金额每个客户的平均订单金额(总金额的发票相同的客户端的订单,每个客户端/数字)

Client 1 Average order amount 1254.21 
Client 2 Average order amount 951.88 
Client 3 Average order amount 891.11 
... 

我想通过平均量进行排序,以获得客户帕尔马里斯

Table facture contains : 
id_client, invoice_number, total amount 
Table commandes_clients contains : 
id_client 

感谢您的帮助

+0

嗨,欢迎来到SO。请参阅https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query – Strawberry

回答

1
SELECT id_client,sum(total_amount)/count(invoice_number) as avg 
FROM factures group by id_client order by avg; 

或者:

SELECT id_client,sum(total_amount)/count(CC.id) as avg 
    FROM factures FA 
    INNER JOIN commandes_clients CC ON FA.id_client=CC.id_client 
    group by FA.id_client order by avg; 

尝试上面的查询。

+0

嗨,谢谢,sum(invoice_number)不是客户的发票总数,而是递增的数字。操作应该像:sum(total_amount)/ count(commandes_clients)。我们需要获取每个客户端完成的订单数量 – jpsFR

+0

@jpsFR对相同的内容进行了更改。它会解决你的问题? –

+0

我不知道该怎么做,因为total_amount来自于事实,并且让每个客户端完成的订单数是另一个表(commandes_ clients)。该操作应该是客户总发票/客户总订单...然后按最佳平均排序 – jpsFR