[英]Calculate percentage for a given date range in sql procedure
表结构:
Col1 col2 col3 col4
1 ABC q 03-11-2018
2 ABC q 03-11-2018
3 ABC q 03-11-2018
4 PBC q 03-11-2018
5 ABC q 04-11-2018
6 ABC q 04-11-2018
7 ABC q 05-11-2018
预期 O/P:通过以下公式计算百分比 count(col2) where col=ABC & total rows count
假设用户给出的日期在 03-11-2018 到 05-11-2018 之间,那么输出应该是
col1 col2 col3
3 3 100%
2 2 100%
1 1 100%
您可以尝试如下。
DECLARE @StartDate DATE='03-11-2018'
DECLARE @EndDate DATE = '05-11-2018';
;WITH cte AS
(SELECT Count(*) col1,
col4
FROM temp_table
WHERE col2 = 'ABC'
GROUP BY col4)
SELECT col1,
col2,
Str(col1 * 100.0/col2, 12, 2) + '%' AS Col3
FROM cte c
CROSS apply (SELECT Count(*) col2
FROM temp_table T
WHERE C.col4 = T.col4)TOT
WHERE C.col4 BETWEEN @StartDate AND @EndDate
注意:将TEMP_TABLE
替换为您的实际表名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.