﻿SELECT RANK() OVER(ORDER BY AVG(time)),
  site, ROUND(AVG(time), 2) AS "average time", COUNT(*) AS "# of Q"
  FROM (
    SELECT site, question, SUM(CASE
    WHEN timestamp BETWEEN '2018-11-02 18:36:00' AND '2018-11-05 05:30:00'
      OR timestamp >= '2018-11-06 06:27:00' THEN 3 -- minutes
    ELSE 10 -- minutes
    END) / 60.0 AS time
      FROM snapshots
      GROUP BY site, question
      ORDER BY COUNT(*) DESC
  ) AS subquery GROUP BY site
  ORDER BY AVG(time) DESC