gpt4 book ai didi

MYSQL在不存在的日期中返回零,并计算特定日期存在多少行

转载 作者:行者123 更新时间:2023-12-04 10:26:20 25 4
gpt4 key购买 nike

我有一个名为日历的表,只有一列(mydate DATE)。

MYDATE
2020-01-01
2020-01-02
2020-01-03

...

我还有一个名为 delivery 的表,其中包含三列(id PK、giorno DATE、totale FLOAT)
ID    GIORNO          TOTALE
1 2020-01-01 0.10
2 2020-01-01 5
3 2020-01-02 12
4 2020-01-12 5
5 2020-02-02 13.50

这就是我想要获得的:
Day            Numbers of orders
2020-01-01 2
2020-01-02 1
2020-01-03 0
2020-01-04 0
2020-01-05 0
2020-01-06 0
2020-01-07 0
2020-01-08 0
2020-01-09 0
2020-01-10 0
2020-01-11 0
2020-01-12 1

...

我正在尝试这个查询:
SELECT c.mydate, IFNULL(d.totale, 0) value 
FROM delivery d
RIGHT JOIN calendar c
ON ( c.mydate = d.giorno )
GROUP BY c.mydate
ORDER BY c.mydate

最佳答案

考虑:

select c.mydate, count(d.id) number_of_orders
from calendar c
left join delivery d on d.giorno = c.mydate
group by c.mydate

这是通过将日历表与订单表左连接,然后按日期聚合,最后计算订单表中匹配行的数量来实现的。

这与您的原始查询非常接近(尽管它使用 left join 而不是 right join ),但是它使用聚合函数来计算订单。

关于MYSQL在不存在的日期中返回零,并计算特定日期存在多少行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60621994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com