我有一个包含以下列的 MySQL 数据库:
id (INT) 持续时间 (FLOAT) start_date (DATETIME)
我想获得持续时间和 start_date 列的模态统计信息(频率计数)。
按频率对事件的持续时间进行排序很简单:
SELECT duration, COUNT(duration)
AS frequency
FROM trips
GROUP BY duration
ORDER BY frequency
DESC;
如果我在 start_date 列上运行相同的查询,我会得到以下形式的结果:
(datetime.datetime(2012, 8, 20, 15, 22), 6L)
(我正在使用 python 来访问数据库)。但是,按分钟接收我的查询不一定有帮助——月份、星期几和小时是更有用的查询。我尝试将查询更改为:
SELECT MONTH(start_date), COUNT(MONTH(start_date))
AS frequency
FROM trips
GROUP BY start_date
ORDER BY frequency
DESC;
但是,如果我这样做,我就会开始收到有关我的 SQL 语法的错误(错误 1064)。不幸的是,我无法弄清楚错误是什么。
我考虑过将年、月、星期、小时、分钟等放在不同的列中,但我觉得应该可以在查询中选择日期时间字段的子字段。
谢谢!