それを行うためのいくつかの方法。
1.共通テーブル式- SQL Server 2005 で導入
; cte as (
select
p.side,
p.uid as uid,
count (p.side) as cside
from tempComm as p
group by p.side , p.uid
)
select * , cside / 3 as pairs , (cside / 3) * 15 as commisonPrice
from cte
order by p.uid;
2.派生テーブル
select
side,
uid,
cside,
cside/3 as pairs,
(cside/3)*15 as commisonPrice
from
(
select
p.side ,
p.uid as uid ,
count (p.side) as cside
from tempComm as p
group by p.side , p.uid
) t
order by uid;
他の方法では、最初にデータを挿入し、列に対してさらに操作を実行する必要がある一時テーブル、ビューを使用していますが、質問には必要ないと思います。
ノート :
CTE と派生テーブルはどちらも一度しか使用できません。データに対して複数の操作を実行する必要がある場合は、一時テーブルを使用してください。
パフォーマンスに関しては、CTEと派生テーブルのパフォーマンスは似ていますが、どちらをより読みやすく、理解しにくいものにするかは好みの問題です。