SSMS:每个 属性 供应商总数的发票总数

SSMS: Total invoice count from total vendors per property

我不是 SQL 专家,我从“建筑属性”中提取发票数量的查询应该吞吐每个 属性 的发票总数和供应商总数。我试过以下查询,你能推荐一些具有类似结果的东西吗?

[脚本查询]

SELECT property, count(distinct InvoiceNo) as Total Number of Invoices 
From dbo.Invoices
Where tstamp >= '2020-01-01'
Group By InvoiceNo;

所需的输出数据

   Total Number of Invoices | Frequently Used Vendors |  Property
   200                      | Name of Vendor          |  Property Name

我认为您想要每个 属性 的顶级供应商。如果是这样,你可以这样做:

select *
from (
    select property, vendor, count(*) cnt_invoices,
        rank() over(partition by property order by count(*) desc) rn 
    from dbo.invoices
    where tstamp >= '2020-01-01'
    group by property, vendor
) t
where rn = 1
order by property

这允许顶级关系(如果有的话)。您可以使用 with tiesorder by:

获得相同的结果
select top (1) with ties property, vendor, count(*) cnt_invoices
from dbo.invoices
where tstamp >= '2020-01-01'
group by property, vendor
order by rank() over(partition by property order by count(*) desc)