如何用Azure Resource Graph Explorer查询含空订阅的各订阅资源数量列表
解决Azure Resource Graph查询包含空订阅资源数的问题
你原来的查询用了inner join,只会保留两边表都匹配的记录,所以空订阅会被过滤掉。要包含资源数为0的订阅,需要改用左外连接(leftouter join),以订阅表为基础关联资源表,这样所有订阅都会被保留,没有资源的订阅统计结果会显示为0。
修改后的查询语句如下:
resourcecontainers | where type == "microsoft.resources/subscriptions" | project subscriptionId, subscriptionName = name | join kind=leftouter ( resources | project subscriptionId ) on subscriptionId | summarize resourceCount = count(subscriptionId1) by subscriptionName | sort by resourceCount desc
逻辑说明:
- 先从
resourcecontainers表筛选出所有Azure订阅,提取订阅ID和名称 - 通过
kind=leftouter连接resources表的订阅ID,确保所有订阅都被保留,无资源的订阅对应的资源表字段会是null - 使用
count(subscriptionId1)统计每个订阅的资源数(subscriptionId1是连接后资源表的订阅ID字段,count()会自动忽略null值,空订阅的统计结果就是0) - 最后按资源数降序排序
如果需要更明确的空值判断,也可以用countif(isnotnull(subscriptionId1))替代count(subscriptionId1),效果一致。
内容的提问来源于stack exchange,提问作者DivZ
相关产品推荐
相关产品推荐

