postgres查询从给定表中创建所需的数据集

时间:2017-09-02 16:38:30

标签: sql postgresql

我有一个显示不同行和列的表。我想要该表中的数据集。但我完全没有想到它。所以我正在显示我的表和该表的结果...请帮我创建查询以生成该结果。先谢谢,我正在展示我的表格

UC_Name   |   Word_No   |   entity
 UC-1     -    w-1      -     a
 UC-1     -    w-2      -     a
 UC-1     -    w-3      -     a
 UC-2     -    w-1      -     a
 UC-2     -    w-2      -     a
 UC-2     -    w-2      -     b
 UC-1     -    w-1      -     a
 UC-3     -    w-3      -     b
 UC-4     -    w-2      -     c

现在结果为

UC-Name    |    w-1     |     w-2    |    w-3

UC-1       -    2       -     1      -    1
UC-2       -    1       -     2      -    0
UC-3       -    0       -     0      -    1
UC-4       -    0       -     1      -    0

实际上我想根据UC-Name

在每个病房中进行实体计数

(再次询问::我有一个显示不同行和列的表。我想要一个来自该表的数据集。但我不知道如何制作它。所以我正在显示我的表和该表的结果..请帮我制作一个查询来生成结果。首先感谢我展示我的表格。

1 个答案:

答案 0 :(得分:1)

根据你的评论,我认为会有固定数量的病房。因为我们没有处理动态数量的病房,所以下面的代码应该适合你。

SELECT uc_name
    ,sum(CASE word_no WHEN 'w-1' THEN 1 ELSE 0 END) AS "w-1"
    ,sum(CASE word_no WHEN 'w-2' THEN 1 ELSE 0 END) AS "w-2"
    ,sum(CASE word_no WHEN 'w-3' THEN 1 ELSE 0 END) AS "w-3"
    ,sum(CASE word_no WHEN 'w-4' THEN 1 ELSE 0 END) AS "w-4"
    ,sum(CASE word_no WHEN 'w-5' THEN 1 ELSE 0 END) AS "w-5"
    ,sum(CASE word_no WHEN 'w-6' THEN 1 ELSE 0 END) AS "w-6"
FROM public.table01
GROUP BY uc_name

-HTH