我有一個健康俱樂部的SQL Server數據庫中的客戶列表。 客戶列出了他們加入的日期和更新的次數 我希望能夠計算續訂客戶的百分比率。關於如何做到這一點的任何想法?謝謝。TSQL計算百分比
回答
這是你正在尋找
Declare @t table(Id Int Identity,CustomerName Varchar(50),DOJ Datetime,IsRenewed bit)
Insert Into @t Values('Name1','1/1/2012',1),('Name2','10/1/2012',1),('Name3','10/2/2012',0)
Select PercentageCustomerRenewed =
Cast((Count(*) * 100)/(Select Count(*) From @t) AS Numeric(10,2))
From @t
where IsRenewed = 1
結果什麼
PercentageCustomerRenewed
66.00
您可以發佈樣本數據,並期望outout ..所以你可以很容易地得到解決方案 –
這是我迄今爲止。我可以使查詢的第一部分工作,但我無法正確地將兩個select語句組合在一起。 - 第1部分:RenewalCount =次數 - 每個客戶續訂 SELECT * FROM (SELECT JoinDate,RenewalCount,YEAR(getdate()) - YEAR(JoinDate) - CASE WHEN MONTH(GETDATE())> MONTH GETDATE()) 或者MONTH(GETDATE())= MONTH(GETDATE())和DAY(GETDATE())> = DAY(GETDATE())then 0 else 1 end AS PotentialRenewal FROM Table)percRenewal --Part 2 選擇100.0 * SUM(更新)/ SUM(潛在更新) 從表AS percRenewal – steve
如果有一個表subscriptions
每個用戶只有一行,是被帶着幾分isrenewed
更新:
SELECT
SUM(SIGN(isrenewed)) * 100/COUNT(*)
AS Percentage
FROM subscriptions
輸出
Percentage
---------------
66,666666
如果你想圓表達
Percentage
---------------
66
如果你有一個表subscriptions
用戶特定的列userid
這裏有你可以將它轉換爲int
SELECT
CAST(
SUM(SIGN(isrenewed)) * 100/COUNT(*)
AS int)
AS Percentage
FROM subscriptions
輸出兩排意味着訂閱被續訂:
SELECT
(SELECT TOP 1 COUNT(*) OVER()
FROM subscriptions
GROUP BY userid
having COUNT(*) > 1)
* 100/COUNT(*) AS Percentage
FROM subscriptions
- 1. TSQL幫助計算百分比
- 2. 計算百分比
- 3. 計算百分比
- 4. 計算百分比
- 5. 計算百分比
- 6. 計算百分比
- 7. 計算百分比
- 8. 對總氣柱MSSQL 2008R2 TSQL計算傳動比百分比
- 9. 計算百分比總計
- 10. 百分比計算與行
- 11. Tableau百分比計算
- 12. SSRS - 計算百分比
- 13. Python百分比計算器
- 14. 計算百分比錯誤
- 15. 用PHP計算百分比
- 16. 計算進度百分比
- 17. 計算百分比SQLite中
- 18. 計算百分比的
- 19. SQL百分比計算
- 20. 計算月度百分比
- 21. SAP HANA計算百分比
- 22. 計算百分比在列
- 23. 計算時間百分比
- 24. 百分比計算在PHP
- 25. VBA計算百分比
- 26. MySQL計算百分比
- 27. C計算百分比#
- 28. 如何計算百分比
- 29. 計算百分比c#
- 30. 計算VB.NET的百分比
你怎麼知道他們沒有?每個客戶的到期日期?或者所有成員資格都是相同的長度,例如一個月?你是否在意他們的會員資格是不連續的? – HABO
聞起來像功課。 – invert
@invert是否會使問題變得更加有效? –