sql - SQL - 如何对特定日期模式的交易进行分组?
问题描述
我有一个包含交易数据的表,并且想要计算每个 transaction_date 的记录数。日期格式如下所示:2018-11-12T01:07:36.000+0000
我试过这个查询,但它没有返回任何东西。我的查询可能有什么问题?
我希望输出看起来像transaction_date
,number_of_transactions
SELECT
transaction_date, COUNT(*)
FROM main.transactions
WHERE transaction_date LIKE 2018-11-30
GROUP BY
transaction_date
ORDER BY COUNT(*) DESC;
UPD:还可以按日期和日期的每个小时(从 00 到 23)分组吗?
解决方案
修剪时间部分以获取日期:
SELECT
transaction_date::date, COUNT(*) xact_count
FROM main.transactions
WHERE transaction_date::date = '2018-11-30'::date
GROUP BY
transaction_date::date
ORDER BY 2 DESC;
并为日期戳使用相等,而不是字符串函数“LIKE”
我在下面看到您关于每小时分组的问题。
SELECT
date_trunc('hour',transaction_date), COUNT(*) xact_count
FROM main.transactions
GROUP BY
date_trunc('hour', transaction_date)
ORDER BY 2 DESC;
推荐阅读
- powershell - 在 PowerShell shell 中的 AZ CLI 中转义密码中的双美元符号
- r - 用 R 中的一对数据替换数据框中列的值
- php - 搜索然后排序值
- oracle - 无需重新插入即可更新行的正确 PL/SQL 是什么?
- amazon-web-services - 对于 Amazon SES:使用 API 接收退回的电子邮件列表?
- node.js - 为什么这个脚本会在使用 docker 的 ElasticSearch 中导致“打开的文件太多”错误?
- r - 为什么我无法在这些 ifelse 语句中识别 NA?
- python - Python 无法识别替换命令
- javascript - 带有 Asp.net Core Mvc 的 Java 脚本模块(导入/导出)
- keras - 如何在 tf2.x 中使用 keras 的 tfrecord