top 50 SUM(DetailTins)
レコードを返す次のクエリがあります。テーブル内のすべてのレコードに対して、SUM(DetailTins)
の割合を示す別の列が必要です。SQL Serverの行の横にパーセンテージの値を取得するにはどうすればよいですか?
次のクエリで変更する必要があるのは何ですか?
また、SQL Server 2008 R2を使用しているため、Over partition by
機能を使用することはできません。
WITH CTE AS
(
SELECT
ID, Name, City, State, SUM(DetailTins) AS SumTins
FROM
FeedRpts
WHERE
(RptTimeFrame BETWEEN @BeginDate AND @EndDate)
AND ((@VALUE = 'TN' AND STATE = 'TN')
OR (@VALUE = 'OOS' AND STATE <> 'TN')
OR (@VALUE = 'ALL'))
GROUP BY
ID, Name, City, State
)
SELECT TOP 50 *
FROM CTE
ORDER BY SumTins DESC
良い点 - 私のANSW実際のパーセンテージ値の作成は組み込まれていませんでした。 OPはこれを分割し、分母をFLOATとしてCASTする必要があります。そうしないと、分数の代わりに0と1を大量に使用することになります。 –
@ Boyd-Pあなたのコメントありがとうございます - あなたは100%正しいです。私は答えを更新しました –