带有组的SQL列百分比

问题描述 投票:0回答:1

---上下文---

  • 展览/表中列出了具有提交日期,客户名称,客户职位,拒绝类型的记录-我有它
  • 需要列出总计和百分比,按照发送日期,客户名称,客户位置和拒绝类型对它们进行分组-到目前为止还没有百分比]
  • 每个月总共有5个客户,每个客户大约应有100条记录,因此必须考虑性能
  • 到目前为止,显示的是值,但没有百分比:

SELECT        TOP (100) PERCENT dbo.LBA.DtSent, dbo.Claims.IDClient, dbo.LBA.IDClientPosition, 
               COUNT(dbo.LBA.IDClientPosition) AS [TOTAL Position], dbo.LBA.IDRefusal, 
               COUNT(dbo.LBA.IDRefusal) AS [TOTAL Refusal]
FROM            dbo.LBA INNER JOIN
                 dbo.ClientPositionLBA ON dbo.LBA.IDClientPosition = 
                 dbo.ClientPositionLBA.IDClientPositLBA LEFT OUTER JOIN
                 dbo.RefusalLBA ON dbo.LBA.IDRefusal = dbo.RefusalLBA.IDRefusal LEFT OUTER JOIN
                 dbo.Claims LEFT OUTER JOIN
                 dbo.Clients ON dbo.Processos.IDClient = dbo.Clients.IDClients ON 
                 dbo.LBA.ClaimID = dbo.Claims.ClaimID
GROUP BY dbo.LBA.IDClientPosition, dbo.Claims.IDClient, dbo.LBA.IDRefusal, dbo.LBA.DtSent

---尝试---

我已经尝试了一些在网上找到的零散内容,但是总会有某种错误会破坏代码,我相信是因为我没有正确插入它。我尝试的最后一个是添加

(count(*) over (partition by IDArlinePosition) / count(*) over ()::numeric)

但是我相信我遇到了sintaxe错误,现在我很困惑,以至于我不知道如何找到正确的路径。

任何帮助将不胜感激。预先感谢!

---上下文---展览/表格,列出提交日期,客户名称,客户位置,拒绝类型的记录-我需要列出总计和按发送日期分组的百分比,...

sql sql-server percentage
1个回答
0
投票

SQL Server执行整数除法。试试这个:

(count(*) over (partition by IDArlinePosition) * 1.0 /
 count(*) over ()
) as ratio
© www.soinside.com 2019 - 2024. All rights reserved.