Q&A for Salesforce administrators, implementation experts, developers and anybody in-between
-- When do we add most posts, both questions and answers? -- UTC (GMT) time zone. The week starts with Sunday. -- X: Hours, days of week, or both (3.5 means Tuesday, 12pm GMT) -- Y: Number of plots -- Parameters: -- HourOrDOW (1 - hours, 2 - day of week, 3 - both) -- All (0 - show stats for one user, 1 - for all users) -- UserId (yours or the other's one; matters only when All = 0) DECLARE @Choice int = ##HourOrDOW:int?1## DECLARE @All int = ##All:int?1## DECLARE @UsedId int = ##UserId:int## IF @Choice = 1 SELECT DATEPART("hour", CreationDate) AS [Hour when posts were added], COUNT(*) AS [Number of posts per hour, UTC (GMT)], COUNT(case PostTypeId when 1 then 1 else null end) AS [Including questions] FROM Posts WHERE OwnerUserId = CASE @All WHEN 1 THEN OwnerUserId ELSE @UsedId END GROUP BY DATEPART("hour", CreationDate) ELSE IF @Choice = 2 WITH tmp AS ( SELECT *, DATEPART("weekday", CreationDate) AS wpart, DATENAME(dw, CreationDate) AS wname FROM Posts ) SELECT wpart AS [Weekday post were added on], -- Little hack to show DoW with data.SO graph builder wname, COUNT(*) AS [Number of posts per weekday], COUNT(case PostTypeId when 1 then 1 else null end) AS [Including questions] FROM tmp WHERE OwnerUserId = CASE @All WHEN 1 THEN OwnerUserId ELSE @UsedId END GROUP BY wpart, wname ORDER BY wpart ELSE IF @Choice = 3 WITH tmp AS ( SELECT *, ROUND((CAST(DATEPART("weekday", CreationDate) AS float) + CAST(DATEPART("hour", CreationDate) AS float) / 24), 2) AS cd FROM Posts ) SELECT cd AS [Day of week + time], COUNT(*) AS [Number of posts], COUNT(case PostTypeId when 1 then 1 else null end) AS [Including questions] FROM tmp WHERE OwnerUserId = CASE @All WHEN 1 THEN OwnerUserId ELSE @UsedId END GROUP BY cd ORDER BY cd