Data Analysis ideas
Churn rate
Churn rate is the percent of subscribers to a monthly service who have canceled.
SELECT COUNT(DISTINCT user_id) AS 'enrolments',
COUNT(CASE
WHEN strftime("%m", cancel_date) = '03'
THEN user_id
END) AS 'march_cancellations',
ROUND(100.0 * COUNT(CASE
WHEN strftime("%m", cancel_date) = '03'
THEN user_id
END) / COUNT(DISTINCT user_id)) AS 'churn_rate'
FROM pro_users
WHERE signup_date < '2017-04-01'
AND (
(cancel_date IS NULL) OR
(cancel_date > '2017-03-01')
);
Using table types
Create a table type.
CREATE TYPE LocationTableType
AS TABLE
( LocationName VARCHAR(50)
, CostRate INT );
GO
/* Create a procedure to receive data for the table-valued parameter. */
CREATE PROCEDURE dbo. usp_InsertProductionLocation
@TVP LocationTableType READONLY
AS
SET NOCOUNT ON
INSERT INTO AdventureWorks2012.Production.Location
(
Name
, CostRate
, Availability
, ModifiedDate
)
SELECT *, 0, GETDATE()
FROM @TVP;
GO
/* Declare a variable that references the type. */
DECLARE @LocationTVP AS LocationTableType;
/* Add data to the table variable. */
INSERT INTO @LocationTVP (LocationName, CostRate)
SELECT Name, 0.00
FROM AdventureWorks2012.Person.StateProvince;
/* Pass the table variable data to a stored procedure. */
EXEC usp_InsertProductionLocation @LocationTVP;