微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

分组依据并添加列

如何解决分组依据并添加列

我倾向于使用条件聚合来处理这种类型的查询

select ward,
       max(case when seqnum = 1 then councillor end) as councillor1,
       max(case when seqnum = 2 then councillor end) as councillor2,
       max(case when seqnum = 3 then councillor end) as councillor3
from (select wc.*,
             row_number() over (partition by ward order by councillor) as seqnum
      from ward_councillors wc
     ) wc
group by ward;

解决方法

我有一个名为“ ward_councillors”的表,以及两列“ ward”和“
councillor”。该表包含所有议员和他们所负责的病房的列表。每个病房都有三名议员,我需要按小组进行分组,这样我每个病房都有一个独特的记录,并且有三个新的栏目,每个病房中都有三名议员负责。

例如当前有:

WARD   | COUNCILLOR
ward a | cllr 1
ward a | cllr 2
ward a | cllr 23
ward b | cllr 4
ward b | cllr 5
ward b | cllr 8

试图达到:

WARD    | COUNCILLOR 1| COUNCILLOR 2| COUNCILLOR 3
ward a  | cllr 1      | cllr 2      | cllr 23
ward b  | cllr 4      | cllr 5      | cllr 8

预先感谢克里斯

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。