[英]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.