ヘルスクラブのSQLServerデータベースに顧客のリストがあります。顧客は、参加した日付と更新した回数とともに一覧表示されます。更新した顧客の割合を計算できるようにしたいと思います。これをどのように行うことができるかについてのアイデアはありますか?ありがとう。
質問する
12536 次
2 に答える
5
subscriptions
ユーザーごとに1行しかないテーブルがある場合、それはビットで更新されますisrenewed
:
SELECT
SUM(SIGN(isrenewed)) * 100 / COUNT(*)
AS Percentage
FROM subscriptions
出力
Percentage
---------------
66,666666
式を丸めたい場合は、int としてキャストできます。
SELECT
CAST(
SUM(SIGN(isrenewed)) * 100 / COUNT(*)
AS int)
AS Percentage
FROM subscriptions
出力
Percentage
---------------
66
subscriptions
ユーザー固有の列を持つテーブルがuserid
あり、行が 2 つある場合は、サブスクリプションが更新されたことを意味します。
SELECT
(SELECT TOP 1 COUNT(*) OVER()
FROM subscriptions
GROUP BY userid
having COUNT(*) > 1)
* 100 / COUNT(*) AS Percentage
FROM subscriptions
于 2012-10-25T04:54:25.040 に答える
1
これはあなたが探しているものですか
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
于 2012-10-25T04:50:51.657 に答える