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 ties
和 order 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)
我不是 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 ties
和 order 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)