我在MSSQL 2008上使用存储过程进行数据分析。我有一个脚本,它使用以下动态SQL返回每个的不同值和计数:
<a style="color:white" download="myimage" href="images/myimage.jpg">Download image</a>
我想将每个不同计数的百分比添加到该输出中。我认为使用here的技术可以用于我正在做的事情,但我无法弄清楚如何整合这两者。 所需的输出将显示不同的值,每个的计数以及每个的百分比。
提前感谢您的帮助。
答案 0 :(得分:0)
您的查询应该像
SELECT @SQL =
N'SELECT ' +
@FieldName +
', COUNT(*) AS [Frequency] '+
', (COUNT(*)* 100 / (Select Count(*) From '+@TableName+ ')) AS [percentage] ' +
'FROM ' +
@TableName +
' GROUP BY ' +
@FieldName +
' ORDER BY [Frequency] DESC';
的 see demo here 强>
答案 1 :(得分:0)
我想分享一些我在@DhruvJoshi的优秀答案中添加的内容,希望它可能在将来帮助某人。
我希望百分比显示2位小数,并在输出中添加百分号。这是我最终使用的内容:
SELECT @SQL =
N'SELECT ' +
@FieldName +
', COUNT(*) AS [Frequency] '+
', CAST(CONVERT(DECIMAL(10,2),(COUNT(*)* 100.0 / (Select Count(*) From '+@TableName+ '))) AS nvarchar) + ''%'' AS [Percent] ' +
'FROM ' +
@TableName +
' GROUP BY ' +
@FieldName +
' ORDER BY [Frequency] DESC';
EXECUTE sp_executesql @SQL;
希望将来帮助某人。再次感谢@DhruvJoshi