我需要按月显示已售出的商品数量,以及销售这些商品的销售人员数量。例如,在1月份,用户3售出10件物品,而用户8售出7件物品,应返回:
date | items | salespersons
2014-01 | 17 | 2
这是我的第一个方法,但这并没有给我带来第三列:
SELECT DATE_FORMAT(invoice_date, "%Y-%m") AS date, COUNT(*) AS items,
FROM report
GROUP BY date
谢谢!
答案 0 :(得分:1)
在您的查询中,您尚未添加第三列。试试这个:
SELECT DATE_FORMAT(invoice_date, "%Y-%m") AS date,
COUNT(*) AS items,
COUNT(DISTINCT id_user) AS salespersons
FROM report
GROUP BY date
答案 1 :(得分:1)
使用DISTINCT
关键字非常重要,否则您将拥有与项目相同的计数。
SELECT
DATE_FORMAT(invoice_date, '%Y-%m') AS date,
COUNT(*) AS items,
COUNT(DISTINCT id_user) as sales_persons
FROM report
GROUP BY date
答案 2 :(得分:0)
您需要添加count( id_user ) as sales_persons
这没有被选中。
SELECT
DATE_FORMAT(invoice_date, "%Y-%m") AS date,
COUNT(*) AS items,
count( id_user ) as sales_persons
FROM report
GROUP BY date
答案 3 :(得分:0)
您不是要求查询中的第三列。添加COUNT(id_user) as salespersons
。你的查询是这样的:
SELECT DATE_FORMAT(invoice_date, "%Y-%m") AS date, COUNT(*) AS items, COUNT(id_user) as salespersons FROM report GROUP BY date