3
グループ化された結果セットから返されたレコードの合計数を計算しているかなり基本的なSQLクエリクエリがあります。Over()を使用したSQLラウンド番号
SELECT vco.OutcomeName,
vco.VersionCompareOutcomeID,
COUNT(t.OutcomeName) AS Total,
ROUND(COUNT(*) * 100.0/sum(count(*)), 1) over() AS Percentage
FROM map.VersionCompareOutcome AS vco
LEFT JOIN @temp AS t
ON vco.VersionCompareOutcomeID = t.VersionCompareOutcomeID
GROUP BY vco.OutcomeName, vco.VersionCompareOutcomeID
私がしようとround
機能を使用する場合、私は次のようなエラーになっています:round
機能がなければThe function 'ROUND' is not a valid windowing function, and cannot be used with the OVER clause.
を、私は割合を取得するが、私は達成しようとしているように、その丸められません。
希望の結果は、小数点以下2桁です(87.95%
など)。
私はこれを統合しようとしていますが、私はゼロ誤差によるエラー '除算が発生した取得しています」。私の合計が「0」なので、パーセンテージとして「0%」を表示する必要があります。あなたの事例でこれを説明できるのでしょうか? – SBB
@SBB - 更新されたクエリを試してください。 –
奇妙なことに、数値が「100%」のレコードが残っています – SBB