我的 SQL Server 数据库中有一个健身俱乐部的客户列表。列出了客户的加入日期和续订次数。我希望能够计算续订客户的百分比。关于我如何做到这一点有什么想法吗?谢谢。
如果有一个表subscriptions,每个用户只有一行,则该表会更新一点isrenewed:
SELECT
SUM(SIGN(isrenewed)) * 100 / COUNT(*)
AS Percentage
FROM subscriptions
Run Code Online (Sandbox Code Playgroud)
输出
Percentage
---------------
66,666666
Run Code Online (Sandbox Code Playgroud)
如果你想对表达式进行四舍五入,可以将其转换为 int
SELECT
CAST(
SUM(SIGN(isrenewed)) * 100 / COUNT(*)
AS int)
AS Percentage
FROM subscriptions
Run Code Online (Sandbox Code Playgroud)
输出
Percentage
---------------
66
Run Code Online (Sandbox Code Playgroud)
如果您有一个subscriptions包含用户特定列的表userid,其中有两行意味着订阅已续订:
SELECT
(SELECT TOP 1 COUNT(*) OVER()
FROM subscriptions
GROUP BY userid
having COUNT(*) > 1)
* 100 / COUNT(*) AS Percentage
FROM subscriptions
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13087 次 |
| 最近记录: |