假设一个名为 transactions 的表有两列: invoiceNumber 和 itemNumber 。单个发票上的多个项目数量会反映在表格中的多个记录中。 (我知道这不是一个合适的设计,但我正在简化一个更复杂的结构来解决根本问题。)
我可以通过以下查询确定每张发票的平均唯一商品数量:
SELECT invoiceNumber, COUNT(DISTINCT itemNumber)
FROM transactions
GROUP BY invoiceNumber
此查询有效地忽略了某个项目的数量,每个发票只计算一次,并显示每张发票的结果。
不是所有这些详细信息,我真正想要的是确定所有发票中平均的唯一商品数量。也就是说,我只想总结一下每张发票的信息。我该怎么做?
答案 0 :(得分:1)
您可以汇总您已经知道如何获得的结果。
WITH DistinctCounts AS (
SELECT invoiceNumber, COUNT(DISTINCT itemNumber) AS distinctItems
FROM transactions
GROUP BY invoiceNumber
)
SELECT AVG(distinctItems)
FROM DistinctCounts
答案 1 :(得分:0)
Select avg(numberininvoice)
From
(
Select invoicenumber, count(itemnumber) as numberininvoie
From
(Select distinct invoicenumber, itemnumber
From transactions) a
Group by invoicenumber
) b