2016-07-26 5 views
1

私は、1つの列が取引日で1つが売上金額列である20列のテーブルを持っています。私はすべての列を引っ張り、取引日によってグループ化したいと思います。しかし、グループのすべての列について言及していないとエラーになります。助言がありますか。日付でSQLサーバー内のテーブルを要約

+1

サンプルテーブルのデータと予想される結果を追加します。 – jarlh

+0

これは、各行のすべての値が同じでないと機能しません。それ以外の場合は、どの行のデータを取得しますか?これがあなたが得ているエラーを得る理由です。 –

+1

いくつかのサンプルデータで説明し、期待される出力を表示してください.DDLは非常に役立ちます。質問は基本的なhttps://spaghettidba.com/2015/ですが、ここで質問してより速い応答とアップアップを得ることができます。 04/24/how-to-post-at-at-a-public-on-a-public-forum/ – TheGameiswar

答えて

0

GROUP BYステートメントは、集合関数と組み合わせて使用​​して、結果セットを1つ以上の列でグループ化します。あなたはグループでそれを使用するためにいくつかの集約関数を提供する必要があります。例えば:

SELECT * 
FROM table_name 
order by transaction_date ASC 

注: これは、トランザクションの日付で注文したテーブルから、あなたの20列を選択し、あなたの必要性に従ってASCまたはDESCを変更します

SELECT transaction_date, COUNT(sales_amount) as AmountCount 
FROM table_name 
GROUP BY transaction_date 
+1

あなたは*必要なものではありませんが、その珍しいものはありません。あなたがしていること*はテーブル名です。 – Jamiec

+0

申し訳ありません質問に記載されていないのでテーブル名を忘れました – Jenism

+0

すべての列を入力する必要があります –

0

あなたはこれを試すことができます。

+0

お願いをお読みください。探しているのではなく、その順序 –

0

SQLで集計関数を使用する場合、非集約関数によるgroup by文を使用する必要があります。

例:

Select a.transactiondate, 
     a.vehicles, 
     a.market, 
     a.city, 
     sum(a.quantity) as Quantity 
from table_name a 
group by a.transactiondate, 
     a.vehicles, 
     a.market, 
     a.city 

合計あなたがしてグループに含まれませんので、あなたの集約関数です。ただグループでのグループにしたい場合でも、それに所属する必要がある他の属性が必要です。

グループには、最も細かいデータポイントでがあります。 1つの列を集計または計数するだけなので、group byステートメントで他のすべての属性が必要になります。

関連する問題