Oracle中如何按日期(而非日期时间)进行分组?
Oracle按天统计method操作次数的查询语句
你需要按日期分组,统计每日各method的执行次数,可以通过GROUP BY结合聚合函数COUNT(*)实现,分两种场景给出语句:
场景1:time字段为字符串类型(与示例格式一致)
假设表名为your_table,直接按time和method分组统计:
SELECT time, method, COUNT(*) AS count FROM your_table GROUP BY time, method ORDER BY time, method;
执行后会输出日期、method、对应执行次数,与你给出的示例结果完全匹配。
场景2:time字段为DATE类型
若time是Oracle的DATE类型(包含时分秒),需要先截断到日期部分,再格式化输出:
SELECT TO_CHAR(TRUNC(time), 'DD-Mon-YYYY') AS time, method, COUNT(*) AS count FROM your_table GROUP BY TRUNC(time), method ORDER BY TRUNC(time), method;
TRUNC(time)用于去除日期的时分秒部分,TO_CHAR将日期转换为你需要的DD-Mon-YYYY格式字符串,再按日期和method分组统计。
内容的提问来源于stack exchange,提问作者coredev
相关产品推荐
相关产品推荐

