2015-02-08 35 views
0

表的結構:獲取正確的數據 - 城市和省份數

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」,或者SUM「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 

回答

0

使用Window Function

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 
+0

謝謝!窗口函數是我想要的!我的解決方案:SELECT cntcity,province,city,SUM(cntcity)OVER(partition BY province)as cnt_firm FROM(SELECT COUNT(city)AS cntcity,province,city FROM tabela GROUP BY省,市ORDER BY省)a – user2536914 2015-02-08 13:36:33