2017-03-05 48 views
0

我需要這兩個SQL腳本爲一體的:讓每個城市的客戶量和從AdventureWorks數據庫的總每個國家的負荷消費的獲取每個城市的客戶量和總每個國家的costumer一個表

我幾乎做到這一點,問題是我需要製作一個TABLE,在Multiple COUNT的問題上。

USE AdventureWorks2014 
SELECT person.Address.City, Count (*) AS Total 
FROM person.Address 
INNER JOIN person.StateProvince 
    ON person.Address.StateProvinceID = person.StateProvince.StateProvinceID 
GROUP BY person.Address.City 
ORDER BY Total DESC 

First scrip Returns

USE AdventureWorks2014 

SELECT person.StateProvince.CountryRegionCode, Count (*) AS Total 
FROM person.Address 
INNER JOIN person.StateProvince 
    ON person.Address.StateProvinceID = person.StateProvince.StateProvinceID 
GROUP BY person.StateProvince.CountryRegionCode 
ORDER BY Total DESC 

Second script returns:

+0

你應該顯示你想要的結果。 –

+0

讓我編輯它,然後 –

回答

0

最簡單的方法是UNION ALL。但是,你基本上可以做同樣的事情與GROUPING SETS

SELECT COALESCE(a.City, sp.CountryRegionCode) as City_or_Region, 
     Count(*) AS Total 
FROM person.Address a INNER JOIN 
    person.StateProvince sp 
    ON a.StateProvinceID = sp.StateProvinceID 
GROUP BY GROUPING SETS ((a.City), (sp.CountryRegionCode)) 
ORDER BY Total DESC; 

注意,這使得一對夫婦關於數據的假設:

  • City是永遠NULL
  • CityCountryRegionCode從不具有相同的值(如果需要,可以將它們拆分爲不同的列)。
+0

我收到錯誤「無效的列名'CountryRegionCode'。」 ,也許是因爲CountryRegionCode不是person.Addres的列 –