按行分组,其中数组具有不同的值但具有相同的值

时间:2015-01-30 07:50:33

标签: arrays postgresql group-by postgresql-8.4

我有一个问题,我们有trac postgresql db(版本8.4),我们需要根据故障单中的标签(关键字)以及在这些故障单上花费的组时间来获取工作日志。

这是我的疑问:

select round(sum(wl.endtime-wl.starttime)/3600.0, 2) AS sum_of_hours, 
      string_to_array(t.keywords, ',') AS keywords 
from work_log AS wl 
  JOIN ticket AS t ON t.id = wl.ticket 
where t.keywords SIMILAR TO '%SWA.IMPLEMENTATION%' 
GROUP BY t.keywords 
HAVING string_to_array(t.keywords, ',') @> ARRAY['SWA.IMPLEMENTATION'];

输出结果为:

     sum_of_hours |       keywords
--------------+------------------------------
       950.08 | {Running,SWA.IMPLEMENTATION}
        11.00 | {SWA.IMPLEMENTATION,Done}
       341.63 | {SWA.IMPLEMENTATION}
        49.25 | {SWA.IMPLEMENTATION,Running}
(4 rows)

我的目标是将呈现“SWA.IMPLEMENTATION”的所有时间分组。所以这四行应该组合在一起。

0 个答案:

没有答案