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