sql - Oracle SQL 按字符串聚合字段分组

标签 sql oracle oracle11g group-by oracle-sqldeveloper

我在对查询中的字段进行分组时遇到问题。以下是我正在讨论的示例:

示例:

AIR_DT             DOL_GAP_TIME         MATL_SIZE                     
15-JAN-15          8:00 AM              30
15-JAN-15          8:00 AM              25
15-JAN-15          9:00 AM              5
15-JAN-15          9:00 AM              10
15-JAN-15          9:00 AM              5
15-JAN-15          9:00 AM              20

时间相同的应归为一组,将其 matl_size 相加

预期输出:

AIR_DT             DOL_GAP_TIME         MATL_SIZE                     
15-JAN-15          8:00 AM              55
15-JAN-15          9:00 AM              40

这是我的 SQL:

SELECT 
      a.air_dt, 
      TRIM(SUBSTR(TO_CHAR (a.dol_pref_start_time, 'mm/dd/yyyy hh:mi:ss AM'),12,2))
      || ':00 '
      || TRIM(SUBSTR (TO_CHAR (a.dol_pref_start_time, 'mm/dd/yyyy hh:mi:ss    AM'),
21, 2)) dol_gap_time, e.matl_size
FROM order_implem_dtl_broadcast a, matl_mstr b, matl_size_mstr e 
WHERE a.matl_id = b.matl_id 
AND b.matl_size_id = e.matl_size_id  
AND a.air_dt LIKE '%15-JAN-15%'
GROUP BY a.air_dt, a.dol_pref_start_time, e.matl_size
ORDER BY a.air_dt, a.dol_pref_start_time;

感谢您提前提供帮助!

最佳答案

根据您的示例数据,这应该可以满足您的要求:

select AIR_DT, DOL_GAP_TIME, sum(MATL_SIZE)
from table t
group by AIR_DT, DOL_GAP_TIME;

但是,我不知道这与问题中的查询有什么关系。

关于sql - Oracle SQL 按字符串聚合字段分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28869092/

相关文章:

oracle - 仅更改外部表 BADFILE、LOGFILE 和 DISCARDFILE 参数

sql - 如何在 Oracle 中填充日历表?

sql - 如何找到没有特定子节点的节点?

php - 多用户的批准和拒绝

mysql - SQL like 和 concat 不返回值

sql - 数据库作业调度

php - 在 MySQL 中检索组的第一个值?

sql - 为什么指定 ROWNUM 时的 SQL 查询速度比在 WHERE 子句中指定日期范围时慢

java.sql.SQLRecoverableException : Closed Connection; State=08003; ErrorCode=17008

MySQL:将 bool 列更改为十进制列,并 Cast() 现有数据