如何结合以下两个查询

时间:2017-08-30 07:16:53

标签: mysql sql

以下查询no.1和查询no.2正在处理每一行.. 1.

 string = "a=1&b=2&c=3&d=4&nbr=1234567890"

2

SELECT app_user.au_userid, SUM(order_detail.od_quantity), (order_detail.od_quantity*SUM(order_detail.od_subtotal)) AS total_amount FROM app_user JOIN orders ON app_user.au_id = orders.o_au_id JOIN order_detail ON orders.o_id = order_detail.od_order_id GROUP BY app_user.au_userid 

以下查询no.3不起作用.. 3。

SELECT COUNT (app_user.au_id) FROM  app_user JOIN orders ON app_user.au_id = orders.o_au_id GROUP BY app_user.au_id

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用COUNT(distinct)

SELECT o.o_au_id, COUNT (DISTINCT o.o_id) AS num_orders,
       SUM(od.od_quantity),
       SUM(od.od_quantity * od.od_subtotal) AS total_amount
FROM orders o JOIN 
     order_detail od
     ON o.o_id = od.od_order_id
GROUP BY o.o_au_id;

注意:

  • 您不需要app_users,因为您在订单表中拥有用户ID。
  • 表别名使查询更易于编写和阅读。
  • 为计算总金额,您应该在求和之前进行乘法运算。
  • 要获取订单数量,请使用count(distinct)