我在postgres数据库中有我的数据。示例数据和所需输出应如下所示

时间:2016-09-14 00:11:35

标签: excel postgresql excel-formula postgresql-9.1 postgresql-9.3

enter image description here

我很难搞清楚这一点。有人可以看看图片并提供解决方案。 请不要提供涉及任何脚本语言编码的解决方案,因为我不是编程人员。 我想通过SQL查询(postgres)或在Excel中使用excel公式来解决这个问题。

1 个答案:

答案 0 :(得分:0)

我没有postgres来测试(所以这可能不完美)。此解决方案假设opening_id不超过两个locations

Select 
t1.opening_id
Case when t2.Num >1 THEN 
CONCAT(t1.location,' | ',t2.location)
ELSE t1.location END as location
,AVG(t1.days_open,t2.days_open) as days_open
,t1.age_band
from table t1
INNER JOIN(
           Select 
           opening_id
           ,location
           ,AVG(days_open)
           ,COUNT(distinct location) as Num
           from table
           Group by opening_id
                   ,location
           )t2
ON t1.opening_id=t2.opening_id
Group by 
        t1.opening_id
       ,t2.Num
       ,CONCAT(t1.location,'|',t2.location)
       ,t1.location
       ,t1.age_band