gpt4 book ai didi

mysql - Group by 仅返回一行

转载 作者:行者123 更新时间:2023-11-29 20:10:54 24 4
gpt4 key购买 nike

我在 mySQL 中使用以下 sql。
我不明白为什么我只得到一行作为输出。

select category, count(*) as counts  
from table_1
where date_add between '2016-07-01' and '2016-07-31'
group by category

最佳答案

由于您按类别进行分组,因此您首先需要查找的就是该日期范围内有多少个类别。如果您在指定日期期间内有“n”个类别,则理想情况下您的结果集应包含“n”行。

您的查询本身没有任何问题。我尝试了两个类别的查询,确实得到了预期的结果集。

如果您想要结果集中的所有类别,无论它们是否在结果集中,那么您可以执行以下操作:

select      category, count(*) as counts
from tab
where date_add between '2016-07-01' and '2016-07-31'
group by category

union

select category, 0 as counts
from tab
where date_add not between '2016-07-01' and '2016-07-31'
group by category

请注意,这是一种简单的方法,但肯定不是最好的

这将显示所有类别,无论日期周期如何。您可以在这里看到 -> http://sqlfiddle.com/#!9/a3a9b/2在这里查看 -> http://sqlfiddle.com/#!9/bdb979/1

如果您将 fiddle 中的数据集修改为具有三个类别,那么结果集将返回预期的 3 行。

在这里查看 -> http://sqlfiddle.com/#!9/ec7a8/1

再次强调,类别必须在该日期范围内出现,才能显示在结果集中。

希望这有帮助!!!

关于mysql - Group by 仅返回一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40128073/

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