データは次の形式です。異なる行からの計算列からの合計値
Column 1
およびValue
データベースから。私はColumn 2
を抽出するためにLEFT()
関数を使用します。私が助けが必要なところでは、新しく計算されたColumn 2
の値を合計し、その合計に新しい列を列挙することです。
すべてのヘルプは高く評価されます。ありがとう。
データは次の形式です。異なる行からの計算列からの合計値
Column 1
およびValue
データベースから。私はColumn 2
を抽出するためにLEFT()
関数を使用します。私が助けが必要なところでは、新しく計算されたColumn 2
の値を合計し、その合計に新しい列を列挙することです。
すべてのヘルプは高く評価されます。ありがとう。
基本的に、あなたが集計キーの機能を持つ集約をしたいように見える:
select left(column1, 1), sum(value)
from t
group by left(column1, 1);
あなたはWindowsを使用してそれを達成することができますが、次のクエリ
SELECT column1
, SUBSTRING(column1,1,1) as [calculated column 2]
,value
, SUM(value) OVER(PARTITION BY SUBSTRING(column1,1,1) )
FROM table1
を試してみてください
をに関する機能します
SUBSTRING(column1,1,1)
(String Functions)の代わりにLEFT(Column1,1)
を使用することもできます
SELECT *
,CalculatedColumn2 = LEFT(Column1,1)
,Value
,CalculatedSum = SUM(Value) OVER (PARTITION BY LEFT(Column1,1))
FROM
Table
SUM()OVERなどの分割されたウィンドウ機能を使用することができますが、Gordonの答えはあなたにSUMを与えます。
は、サブクエリとして設定し、新しい列によってvalue
列グループの合計を見つけた結果LEFT
機能と使用を使用してcolumn1
からの最初の文字を取得します。
クエリ
SELECT t.[column2], SUM(t.[value]) as [value] FROM(
SELECT [column1], LEFT([column1], 1) AS [column2], [value]
FROM [your_table_name]
)t
GROUP BY t.[column2];
追加左から値を含めることができcomputed persisted column
(column1のを、1)。あなたはあなたのコードを繰り返さない。
alter table tbl add newcomputedcol column (left(column1, 1)) persisted
使用subqryをグループ化したり句を超える使用:あなたの新しい持続列がインデックスを作成することができ
select
*,
sum(value) over() over(partition by newcomputedcol) SumPerNewComputedCol
from tbl
、あなたのQRYをビューに追加することができます。
ありがとうございました!これはすごくうまくいった!感謝祭が良い! – Nich
@あなたの歓迎です。あなたのすべてのセットが投票を忘れることなく、あなたを助けてくれた回答を受け入れ、他の人があなたの質問を受け取り、評判のポイントが得られたことを知っている場合は、あなたにも感謝の挨拶! – Matt