我有3张table(简体):
订单(订单ID,日期)
订单行(lineid、orderid、userid)
用户(userid,name)
我想每个用户的订单数量按年度和按用户名每月订单分组列表。订单行具有用户id的原因是,另一个用户可以更改订单行。下面列出了订单行的数量,但只需要计算订单数量:
SELECT
users.name,
COUNT(orders.orderid) AS number,
MONTH(orders.date) AS month,
YEAR(orders.date) AS year
FROM orders
INNER JOIN orderlines ON orders.orderid = orderlines.orderid
INNER JOIN users ON orderlines.userid = users.userid
GROUP BY orderlines.userid, YEAR(order.date), MONTH(order.date)
ORDER BY users.name, orders.date
我觉得我很接近。。。
电流输出为:
name | number | month | year
----------------------------
jeff | 1000 | 1 | 2018
jeff | 1100 | 2 | 2018
应该是:
name | number | month | year
----------------------------
jeff | 100 | 1 | 2018
jeff | 110 | 2 | 2018
当前显示的数字是订单行数,但我希望它是订单数。
1条答案
按热度按时间nom7f22z1#
试试下面的方法:你需要在groupby中使用users.name,而且它应该在order by子句中,正如你的问题所说的那样,另一件事是因为你想知道每个用户的订单数,所以它应该是count distinct orderid