0

2 つの列が含まれるtransactionsという名前のテーブルがあるとします。invoiceNumberitemNumberです。1 つの請求書に記載されている複数の数量のアイテムは、テーブル内の複数のレコードに反映されます。(これが適切な設計ではないことはわかっていますが、根本的な問題を解決するために、より複雑な構造を単純化しています。)

次のようなクエリを使用して、各請求書の一意のアイテムの平均数を判断できます。

SELECT invoiceNumber, COUNT(DISTINCT itemNumber) 
FROM transactions 
GROUP BY invoiceNumber

このクエリは、アイテムの数量を効果的に無視し、各請求書ごとに 1 回だけカウントし、各請求書の結果を表示します。

ただし、このすべての詳細情報の代わりに、すべての請求書の一意のアイテムの平均数を決定することだけが本当に必要です。つまり、請求書ごとの情報を要約したいだけです。それ、どうやったら出来るの?

4

2 に答える 2

0
Select avg(numberininvoice)
From
(
Select invoicenumber, count(itemnumber) as numberininvoie
From
(Select distinct invoicenumber, itemnumber
From transactions) a
Group by invoicenumber
) b
于 2013-10-09T20:19:54.300 に答える