Sql 获取正确的数据-城市和省份计数

Sql 获取正确的数据-城市和省份计数,sql,postgresql,select,get,Sql,Postgresql,Select,Get,表的结构: ID | firm | city | province 1 | test1 | Warszawa | 1 2 | test2 | Gdańsk | 12 3 | test3 | Otwock | 1 3 | test4 | Kraków | 3 4 | test5 | Olkusz | 3 这是我的SQL查询: SELECT COUNT(miasto) AS cntcity, wojewodztwo, miasto FROM tabela GRO

表的结构:

ID | firm | city | province

1  | test1 | Warszawa | 1
2  | test2 | Gdańsk   | 12
3  | test3 | Otwock   | 1
3  | test4 | Kraków   | 3
4  | test5 | Olkusz   | 3
这是我的SQL查询:

    SELECT COUNT(miasto) AS cntcity, wojewodztwo, miasto FROM tabela GROUP BY wojewodztwo, miasto ORDER BY wojewodztwo
结果是:

cnt_city | province   | city
6           1           Warszawa
2           1           Otwock
3           5           Kraków
7           5           Olkusz
3           12          Gdańsk  
我还想计算cnt_city,或者说求cnt_city的和-6+2=8,3+7=10,3我知道如何在PHP中实现这一点,但可以在SQL中实现吗?如何修改上述SQL查询? 我想要这样的结果:

cnt_city | province | city      | cnt_firm
6          1           Warszawa | 8
2          1           Otwock   | 8
3          5           Kraków   | 10
7          5           Olkusz   | 10
3          12          Gdańsk   | 3
使用窗口功能


谢谢窗口功能是我想要的!我的解决方案:选择cntcity,province,city,SUMcntcity OVER partition BY province作为cnt_公司,从COUNTcity作为cntcity,province,city从tabela GROUP BY province,city ORDER BY province a中选择cntcity
SELECT cntcity,
       province,
       city,
       Sum(cntcity)OVER(partition BY province) As cnt_firm
FROM   (SELECT Count(miasto) AS cntcity,
               province,
               city          to
        FROM   tabela
        GROUP  BY wojewodztwo,
                  miasto) a