首页 > 解决方案 > 如何按月计算列中的值?

问题描述

在我的数据框中,我试图计算每个月列的值的数量,由 SQL 中的时间列给出。我希望输出对每个月列中的值数进行计数。我知道我可以使用 where 函数来计算一个月,并且我可以在所有 12 个月内都这样做,但想知道是否有更有效的方法。这是效率低下的例子:

SELECT
    count(column1) AS Total
FROM DataFrame
WHERE MONTH(date) == 1
 GROUP by column1 ORDER by count(column1) DESC LIMIT 10

标签: sqldataframe

解决方案


我正在尝试计算 SQL 中时间列给出的每个月列的不同值。我

你似乎想要GROUP BY

SELECT MONTH(date) as mon, approx_count_distinct(column1, 0.1) AS Total
FROM DataFrame
GROUP by MONTH(date)
ORDER by Total DESC
LIMIT 10;

请注意,在日期上使用MONTH()YEAR()带过滤器或过滤器是非常可疑的。


推荐阅读