繁体   English   中英

如何在T-SQL中的另一个聚合函数中执行聚合函数?

[英]how to do aggregate function with in another aggregate function in t-sql?

我的t-sql不好。.请帮助...我得到了表Claims和Columns:

Client,BusinessType, cliamRefno

我想要这样的结果:

SELECT Client, BusinessType, COUNT(cliamRefno ), SUM(COUNT(cliamRefno )), 
COUNT(cliamRefno )/SUM(COUNT(cliamRefno )) FROM Claims GROUP BY Client, BusinessType

可以请任何人帮忙吗? 谢谢

尝试这个:

DECLARE @Claims TABLE (
    Client VARCHAR(50),
    BusinessType VARCHAR(50), 
    cliamRefno INT);
INSERT INTO @Claims VALUES('J Smith', 'Agricultural', 1);
INSERT INTO @Claims VALUES('D Brown', 'Agricultural', 2);
INSERT INTO @Claims VALUES('J Smith', 'Agricultural', 3);
INSERT INTO @Claims VALUES('Z Brown', 'Agricultural', 4);
WITH TotalClaims AS (
    SELECT
        COUNT(*) AS TotalClaims
    FROM
        @Claims)
SELECT 
    c.Client, 
    c.BusinessType, 
    COUNT(c.cliamRefno) AS RefNoCount, 
    tc.TotalClaims AS TotalRefNoCount, 
    COUNT(c.cliamRefno) * 1.0 / tc.TotalClaims AS SomeAggregate
FROM 
    @Claims c
    CROSS JOIN TotalClaims tc
GROUP BY 
    c.Client, 
    c.BusinessType,
    tc.TotalClaims;

根据您的意见以及我从您的OP中获得的信息,请尝试根据您的需要进行操作。 您需要对查询进行子查询,然后在窗口函数中对它们求和以保留分组,但可以查看要查找的计数。

SELECT Client, BusinessType, Counts, SUM(Counts)OVER(), 
Counts/SUM(Counts)OVER()
FROM (
    SELECT Client, BusinessType, COUNT(cliamRefno) AS Counts
    FROM Claims
    GROUP BY Client, BusinessType
    ) T

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM