2
我有一个查询,我一直在努力了一段时间,但我似乎无法得到它。这里的其他答案适用于计算某个日期范围内的金额,然后按日期分组以获得计数。不过,我需要按日期对两列进行计数和分组。MySQL日期范围多列计数和按选择语句分组
比如这里是我试图去工作查询:
(SELECT COUNT(*) arrived, DATE(arrived) date, 'arrived' AS source
FROM products
WHERE arrived BETWEEN '2016-01-01' AND '2016-01-31'
GROUP BY DATE(date)
ORDER BY date ASC)
UNION ALL
(SELECT COUNT(*) released, DATE(released) date, 'released' AS source
FROM products
WHERE released BETWEEN '2016-01-01' AND '2016-01-31'
GROUP BY DATE(date)
ORDER BY date ASC)
然而,这返回如下:
arrived date source
3 2016-01-12 arrived
2 2016-01-28 arrived
1 2016-01-29 arrived
1 2016-01-05 released
我所需要的是这样的:
date arrived released
2016-01-05 0 1
2016-01-12 3 0
2016-01-28 2 0
2016-01-29 1 0
有什么建议吗?谢谢。
谢谢你,除了一两件事,工程,它会将当天发布的东西拉到抵达日期。例如,在2016-01-05当我发布1个物品时,它会显示1个物品已发布,0个物品已到达,就像我想要的那样。然而,对于发布的该项目,它将显示其到达日期(2015-10-04),而不是其发布日期(2016-01-05)。这当然是因为你把日期(抵达)日期,这将抓住到达日期。有没有什么办法可以是DATE(到达)或DATE(已发布),以便抓取正确的日期? – Ethan
@Ethan是的,你是对的。我误解了你的表的模式。让我重新构造查询以适应表格的真实架构。 –
完美!谢谢! – Ethan