gpt4 book ai didi

sql - 如何根据列值获得百分比?

转载 作者:行者123 更新时间:2023-12-01 23:44:41 25 4
gpt4 key购买 nike

2015 年 5 月 18 日更新

有一列列有客户姓名。我怎样才能得到基于每个日期一个客户的百分比?例如

    CustomerName     Date
Sam 04/29/15
Joy 04/29/15
Tom 04/29/15
Sam 04/29/15
Oly 04/29/15
Joy 04/29/15
04/29/15
Sam 04/29/15
04/29/15
Sam 04/29/15
Oly 04/29/15
Sam 04/29/15
Oly 04/30/15
Joy 05/01/15

请注意,我的列有 12 条记录,其中 2 条是空白的,但它们不会计算百分比,只计算有名称的记录。我想知道 Sam 在总数中所占的百分比(在本例中为 10 条记录,因此 Sam % 将为 50)。

查询应该返回

Date             Percentage
04/29/15 50
04/30/15 0
05/01/15 0

更新

我真的不关心其他客户,所以让我们将他们视为一个客户。只需要知道 Sam 在总列表中的百分比。

任何帮助将不胜感激。谢谢

最佳答案

似乎每个人都在使用子查询或派生表。这应该表现良好并且很容易遵循。试试看:

DECLARE @CustomerName VARCHAR(5) = 'Sam';

SELECT [Date],
@CustomerName AS CustomerName,
percentage = CAST(CAST(100.0 * SUM(CASE WHEN CustomerName = @CustomerName THEN 1 ELSE 0 END)/COUNT(*) AS INT) AS VARCHAR(20)) + '%'
FROM @yourTable
WHERE CustomerName != ''
GROUP BY [Date]

结果:

Date       CustomerName percentage
---------- ------------ ---------------------
2015-04-29 Sam 50%
2015-04-30 Sam 0%
2015-05-01 Sam 0%

关于sql - 如何根据列值获得百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29945643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com