2016-11-17 14 views
2

私はサプライヤから製品ごとのコスト分析を行っていますが、このSQLコードの粒度または手順を試している間、しばらく詰まっています。以下の表は、何かのようになります。SQL:平均の「最小」または「最小」を決定する

Supplier  ProductCount  Cost 
SupA   2    564.00 
SupA   1    200.00 
SupB   3    650.00 
SupC   2    600.00 
etc. 

そして、私が欲しいのはそうのような要約を含むテーブルである:私は、単純なSUM関数によって他人を行うことができます

Supplier  TotalCount  TotalCost  AvgCost  MinAvgCost (expected) 
SupA   3    764.00  254.67  ?(200) 
SupB   3    650.00  216.67  ?(216.67) 
SupC   2    600.00  300.00  ?(300.00) 

が、私は混乱していますMinAvgCostを行う方法については、私が単にSELECT MIN(AvgCost)を実行すると、AvgCostと同じ値を返します。

コードでCostとProductCountを各行に分割し、その数式のMIN値を返すように定義するにはどうすればよいですか?

+3

あなたが使用しているDBMSにタグを付けることができれば、それが役立つだろう。また、期待される結果の '?'を記入してください。 –

+3

なぜur結果クエリで 'SupA'のTotalCostは564ですか? 764ではない? – esiprogrammer

+1

そして 'minavgcost'の式は何ですか? –

答えて

1

This is probably what you want ?

(私はMySQLでそれをやった、あなたは他のDBにいくつかの変更が必要な場合があります)

SELECT 
    Supplier, 
    sum(ProductCount) AS TotalCount, 
    sum(Cost) AS TotalCost, 
    (sum(Cost)/sum(ProductCount)) AS AvgCost, 
    min(Cost/ProductCount) AS MinAvgCost 
FROM t 
GROUP BY `Supplier` 
+0

Works!ありがとうございました! – Lazarius

+0

@ラザリウスあなたは歓迎です;)ところで、あなたのDBは何ですか? MySQL? – Blag

+0

実際のDB自体はHP Verticaですが、フロントエンドはSQLを使用しています。 – Lazarius

関連する問題