sql - 如何按月计算列中的值?
问题描述
在我的数据框中,我试图计算每个月列的值的数量,由 SQL 中的时间列给出。我希望输出对每个月列中的值数进行计数。我知道我可以使用 where 函数来计算一个月,并且我可以在所有 12 个月内都这样做,但想知道是否有更有效的方法。这是效率低下的例子:
SELECT
count(column1) AS Total
FROM DataFrame
WHERE MONTH(date) == 1
GROUP by column1 ORDER by count(column1) DESC LIMIT 10
解决方案
我正在尝试计算 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()
带过滤器或过滤器是非常可疑的。
推荐阅读
- spring - 如何从一个控制器类和 fxml 文件创建多个控制器和视图实例
- c - 释放具有函数指针的结构会导致 SIGTRAP
- php - 我怎样才能不断更新图像或文件,而仍然不删除或丢失其他文件?PHP 代码点火器
- android - Admob 广告中标题文本的可见性?
- c++ - 如何找到随机整数中每个数字的出现次数?
- pytorch - pytorch - 如何从 DistributedDataParallel 学习中保存和加载模型
- javascript - Angular Shopping Cart - 本地存储服务和订阅更改
- android - 在同一 wifi 上从 Android 访问我的 Mac 上的本地主机网络服务器
- azure-active-directory - Keycloak Azure AD - SAML 2.0 身份提供程序错误
- azure - Azure Pipelines + Maven:无法找到可执行文件:'mvn'