我有一个名为reviews的MySql表,其中存储了许多产品评论,这些评论是多年积累的,每个评论都用日期时间戳进行了注解。
我想画一个条形图,显示我在一年中每天积累的评论数量,希望找到我的系统的重要日期。
我使用了以下查询
select dayofyear(date),count(*) from reviews group by dayofyear(date);
但是,在注意到返回的是366行而不是365行之后,我意识到我不能用它来制作这个图表,因为每个闰年的日索引都会偏移1,这会扭曲我的数据。
例如,圣诞节在大多数年份显示为第359天,但在闰年显示为第360天。
解决这种偏斜的最简单方法是什么?
在sidenote上,是否有任何软件包可以接受SQL查询并直接以条形图的形式返回结果(如果条形图有意义)
3条答案
按热度按时间relj7zay1#
我还没有测试过这个,但是你可以做一些类似下面的事情:
这将合并闰年的28日和29日的数据,但对闰年和非闰年的所有其他日期给予相同的偏移量,一个更理想的行为可能是简单地忽略2月29日的数据,这可以通过使用附加条件来实现,你也可以为它分配一个特殊的索引,比如400,它不会偏移所有其他日期。
更好的方法可能是按月份和日期分组:
这样就避免了所有的问题,但是在应用程序逻辑中处理起来可能会更加复杂,不过,我认为这是一种更好的方法。
vd2z7a6w2#
按月的天分组,每个月都冲洗并重复?
cwxwcias3#
上面写的代码是使用MySQL Workbench中的函数查找闰年,我经常使用(workbench)。编写并执行此代码后,可以看到在schema中创建了左侧的leap_year函数。
您需要调用此函数才能看到此函数的输出。用于调用此函数。
一旦你点击上面的线,看到输出会显示“0”,这意味着2023年不是闰年。
我希望你能理解。