计算百分比和计数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算百分比和计数相关的知识,希望对你有一定的参考价值。

我试图在表格中显示计数和百分比。

我使用的查询是这样的:

DECLARE @BeginDate AS DATETIME
SET @BeginDate = GETDATE();

SELECT TOP 10 
    s.Title AS Title, COUNT(*) AS TotalSessions 
FROM 
    History s
WHERE 
    CONVERT(DATE, s.DateStamp) >= DATEADD(DAY, -7, @BeginDate)
    AND CONVERT(DATE, s.DateStamp) <= DATEADD(DAY, -1, @BeginDate)  
GROUP BY 
    Title
ORDER BY 
    TotalSessions DESC

这将返回前1o记录,现在

  1. 我想将总数百分比值显示为第三列。我可以在同一查询中执行此操作吗?
  2. 我想将剩余的计数显示为其他计数(如果有100条记录,前10行显示前10条记录,第11行显示剩余90条记录的总和,其他标题为“其他”)。我可以在同一个查询中执行此操作吗?
答案

您可以使用窗口功能。像这样的东西:

SELECT TOP 10 s.Title as Title, count(*) as TotalSessions,
       COUNT(*) * 1.0 / SUM(COUNT(*)) OVER ()
FROM History s
WHERE convert(date,s.DateStamp) >= DATEADD(DAY, -7, @BeginDate)
AND  convert(date,s.DateStamp) <= DATEADD(DAY, -1, @BeginDate)  
GROUP BY Title
ORDER BY TotalSessions DESC

以上是关于计算百分比和计数的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS:从“计数”计算字段中计算百分比

SQL:计算每个设备集连续出现相同值的所有记录并返回最高计数:百分比

值计数的百分位数

如何为红移中字符串的唯一计数百分比?

计算不同时间段内子组的数据框中的百分比变化

在 Windows 中用 C 语言计算百分比