タイトルは言葉に難しかったですが、質問は非常に簡単です。私はここ全体を検索しましたが、私の特定の問題について何かが見つからなかったので、ここにあります。 Microsoft SQL Server Management Studio 2010を使用しています。
テーブルは現在このように見えます
| Value | Product Name|
| 300 | Bike |
| 400 | Bike |
| 300 | Car |
| 300 | Car |
製品名が一致する値の合計を示すテーブルが必要です-このように
| TOTAL | ProductName |
| 700 | Bike |
| 600 | Car |
私は簡単に試しました
SELECT
SUM(Value) AS 'Total'
,ProductName
FROM TableX
しかし、上記は機能しません。列のすべての値の合計を取得することになります。製品名の一致に基づいてどのように合計できますか?
ありがとう!
SELECT SUM(Value) AS 'Total', [Product Name]
FROM TableX
GROUP BY [Product Name]
SUM
ステートメントの列で集計関数(MIN
、MAX
、SELECT
...)を使用する場合は常に、_GROUP BY
_。これは、集計をグループ化する列を示すグループ関数です。さらに、集計に含まれていない列をSELECT
ステートメントに含めることはできません。
たとえば、次の構文は無効です(_col2
_にない列(_GROUP BY
_)を指定しているためです(MySQLではこれが許可されています)。
_SELECT col1, col2, SUM(col3)
FROM table
GROUP BY col1
_
あなたの質問に対する解決策は:
_SELECT ProductName, SUM(Value) AS 'Total'
FROM TableX
GROUP BY ProductName
_