如何显示每行的正确计数

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

我有一个查询,该查询检索一条记录,该记录可以有多个与其关联的表行。

示例:

record id: PPP-2024-00975
is associated to 3 permits:  1495, 1496, 1497

这样检索:

RECORD_ID   PERMITNO
PPP-2024-00975  1495
PPP-2024-00975  1496
PPP-2024-00975  1497

第三列名为“permit_count”,每行显示 3:

RECORD_ID   PERMITNO    PERMIT_COUNT
PPP-2024-00975  1495    3
PPP-2024-00975  1496    3
PPP-2024-00975  1497    3

我想了解如何更改计数,而不是每行显示总计数 3,而是每行显示 1

这是我的基本查询:

SELECT      
    RECORD_ID
,   PERMITNO
,   PERMIT_COUNT
FROM PERMIT A 
INNER JOIN PERMITDETAIL D 
    ON A.CODE = D.CODE 
    AND A.ID1 = D.ID1 
    AND A.ID2 = D.ID2 
    AND A.ID3 = D.ID3
INNER JOIN TABLE_VALUE TV
    ON A.CODE = TV.CODE
    AND A.ID1 = TV.ID1
    AND A.ID2 = TV.ID2
    AND A.ID3 = TV.ID3
WHERE
    AND A.STATUS = 'A'
    AND A.GROUP = 'Permitting' 
    AND A.TYPE = 'Annual'
    AND YEAR(A.FILEDATE) <= YEAR(GETDATE()-10)
sql sql-server count
1个回答
0
投票

您可以使用窗口函数

count over()
计算出总数,然后除以它以返回原始值,例如

PERMIT_COUNT / COUNT(*) OVER (PARTITION BY RECORD_ID)
© www.soinside.com 2019 - 2024. All rights reserved.