sql 查询以查找 table 中特定事件的最大小时数

sql Query to find the maximium hour of particular event in table

我有一个 table 字段(犯罪 ID 整数,crime_time 时间戳,犯罪字符串,城市字符串)

table 中只有 9 种独特的犯罪行为。我需要找到时间,即特定犯罪发生频率最高的时间。例如,如果抢劫的原因最多在 10-11 之间,则它必须显示 10 或 11 ...时间可能从 00:00 开始到 23:59

结束

这应该可以,但我还没有测试过(您可能必须找到我使用的 postgres 函数的 hive 等价物:extract(此处提供文档:http://www.postgresql.org/docs/9.1/static/functions-datetime.html)。

SELECT max(nb), period
FROM (
    SELECT count(*) as nb, period
    FROM (
        SELECT crime_string, extract(hour from crime_time) as period
        FROM crimes
        WHERE crime_string = 'Robbery'
    )
    GROUP BY period
);

viod回答差不多就ok了

但是需要一个group by来统计时间段内的抢劫

还需要为子查询设置一个别名。

SELECT  period, max(nb)
FROM (
        SELECT extract(hour from crime_time) as period, count(*) as nb
        FROM crimes    
        WHERE crime_string = 'Robbery'
        GROUP BY extract(hour from crime_time)   
    ) as  subquery_alias
GROUP BY period