很抱歉,我又问了一个与这个主题有关的问题——我通读了其他的文章,但我仍然不能弄清楚我的具体情况。
所以我有一个输出:
输出上述内容的查询是:
SELECT (CASE
WHEN ca.iteration = 'Pre' THEN '1. Pre'
WHEN ca.iteration = 'Post-2' THEN '3. Post-2'
WHEN ca.iteration = 'Post' THEN '2. Post'
END) AS capes_iteration,
ROUND(AVG(ca.emotional_problems_score)) AS avg_child_emotions_score,
ROUND(AVG(ca.behavioral_problems_score)) AS avg_child_behaviors_score,
ROUND(AVG(ca.total_score)) AS avg_total_intensity_score,
ROUND(AVG(ca.total_parent)) AS avg_parent_confidence_score
FROM reporting_f5scppp.capes ca
LEFT JOIN public.contacts c ON c.id = ca.contact_id
GROUP BY capes_iteration;
我希望它看起来像这样:
我花了大约4个小时的时间试图让这个没有用-我只是一个初学者的sql看到一个解决方案,这将是一个伟大的学习机会,为我。
如果有人能提供一个简单的解决方案,午餐我请客!
2条答案
按热度按时间3zwjbxry1#
您可以使用横向连接取消分数。然后重新汇总:
8hhllhi22#
一种选择是使用
each()
函数以获取键值元组,然后在主查询中通过条件聚合进行数据透视:哪里
使用
COALESCE()
函数的第二个参数为零,将空值赋给零注意
avg_total_intensity_score
是两列相加得到的派生列演示