显示TSQL中不同的计数和百分比

时间:2017-10-11 14:22:04

标签: sql sql-server tsql

我在MSSQL 2008上使用存储过程进行数据分析。我有一个脚本,它使用以下动态SQL返回每个的不同值和计数:

   <a style="color:white" download="myimage" href="images/myimage.jpg">Download image</a>

我想将每个不同计数的百分比添加到该输出中。我认为使用here的技术可以用于我正在做的事情,但我无法弄清楚如何整合这两者。 所需的输出将显示不同的值,每个的计数以及每个的百分比。

提前感谢您的帮助。

2 个答案:

答案 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