[英]Using HAVING with GROUPING SETS
我的sql字符串如下
SELECT Country, City, COUNT(*) AS [Count]
FROM CountriesAndCities
GROUP BY GROUPING SETS ( ( Country, City ), ( Country) )
ORDER BY Country, City
我得到如下结果
Country City CountryCount
---------- ---------- ------------
France NULL 4
France Paris 4
Spain NULL 6
Spain Barcelona 3
Spain Madrid 3
如果某个国家/地区只有一个城市记录,那么使用HAVING可以获得以下结果吗?
Country City CountryCount
---------- ---------- ------------
France Paris 4
Spain NULL 6
Spain Barcelona 3
Spain Madrid 3
SELECT Country, City, COUNT(*) AS [Count]
FROM CountriesAndCities
GROUP BY GROUPING SETS ( ( Country, City ), ( Country) )
HAVING GROUPING(City) = 0
OR COUNT(DISTINCT City) > 1
ORDER BY Country, City
City
是当前分组依据的字段之一,则GROUPING(City) = 0
。 GROUPING(City) = 1
City
被报告为NULL
。 这意味着我们总是包括提到City
的行(不是NULL
)。
对于其他行,其中GROUPING(City) = 1
aka City IS NULL
,则仅在将多个City
聚合到结果中的情况下才包括该行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.