Advertisement
slnt

Untitled

Jan 16th, 2024
1,003
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 8.43 KB | None | 0 0
  1. SELECT
  2.     `all_data`.`year`,
  3.     `all_data`.`month`,
  4.     `all_data`.`sessions`,
  5.     `all_data`.`playTime`,
  6.     `all_data`.`events`,
  7.     `all_data`.`alerts`,
  8.     `all_data`.`alertedVehicles`,
  9.     `all_data`.`statusUpdates`,
  10.     `all_data`.`callRequests`,
  11.     `all_data`.`hospitalAssignments`,
  12.     `all_data`.`forceFinishedEvents`,
  13.     `all_data`.`resetedVehicles`,
  14.     COALESCE(`morticians_data`.`dead`, 0) + all_data.morticians AS `dead`,
  15.     COALESCE(`towed_data`.`towed`, 0) + all_data.towed AS `towed`,
  16.     `ranked_data`.`longestSessionId`,
  17.     `ranked_data`.`longestSessionHost`,
  18.     `ranked_data`.`longestSessionPlayTime`,
  19.     `ranked_data`.`mostEventsSessionId`,
  20.     `ranked_data`.`mostEventsSessionHost`,
  21.     `ranked_data`.`mostEventsSessionCount`,
  22.     `real_ranked_data`.`mostEventsSessionId` AS "realMostEventsSessionId",
  23.     `real_ranked_data`.`mostEventsSessionHost` AS "realMostEventsSessionHost",
  24.     `real_ranked_data`.`mostEventsSessionCount` "realMostEventsSessionCount",
  25.     `startup_data`.`total_startups`,
  26.     `pairs_data`.`mostPlayTimePlayer1`,
  27.     `pairs_data`.`mostPlayTimePlayer2`,
  28.     `pairs_data`.`mostPlayTime`,
  29.     `pairs_data`.`mostSessionsPlayer1`,
  30.     `pairs_data`.`mostSessionsPlayer2`,
  31.     `pairs_data`.`mostSessions`
  32. FROM
  33.     (
  34.         SELECT
  35.             YEAR(`s`.`startTime`) AS `year`,
  36.             MONTH(`s`.`startTime`) AS `month`,
  37.             COUNT(0) AS `sessions`,
  38.             ROUND(
  39.                 ((SUM(`s`.`playTime`) / 60) / 60),
  40.                 0
  41.             ) AS `playTime`,
  42.             SUM(`ss`.`events`) AS `events`,
  43.             SUM(`ss`.`alerts`) AS `alerts`,
  44.             SUM(`ss`.`alertedVehicles`) AS `alertedVehicles`,
  45.             SUM(`ss`.`statusUpdates`) AS `statusUpdates`,
  46.             SUM(`ss`.`callRequests`) AS `callRequests`,
  47.             SUM(`ss`.`hospitalAssignments`) AS `hospitalAssignments`,
  48.             SUM(`ss`.`forceFinishedEvents`) AS `forceFinishedEvents`,
  49.             SUM(`ss`.`resetedVehicles`) AS `resetedVehicles`,
  50.             SUM(`ss`.`morticians`) AS `morticians`,
  51.             SUM(`ss`.`towcars`) AS `towed`
  52.         FROM
  53.             `luedenscheid`.`sessions` `s`
  54.         JOIN `luedenscheid`.`session_statistics` `ss` ON `s`.`id` = `ss`.`sessionId`
  55.         GROUP BY
  56.             YEAR(`s`.`startTime`),
  57.             MONTH(`s`.`startTime`)
  58.     ) AS `all_data`
  59. LEFT JOIN
  60.     (
  61.         SELECT
  62.             YEAR(`s`.`startTime`) AS `year`,
  63.             MONTH(`s`.`startTime`) AS `month`,
  64.             SUM(`svs`.`status8`) AS `dead`
  65.         FROM
  66.             `luedenscheid`.`sessions` `s`
  67.         JOIN `luedenscheid`.`session_vehicle_statistics` `svs` ON `s`.`id` = `svs`.`sessionId`
  68.         WHERE
  69.             `svs`.`vehicleId` IN (1972, 1973, 1977)
  70.         GROUP BY
  71.             YEAR(`s`.`startTime`),
  72.             MONTH(`s`.`startTime`)
  73.     ) AS `morticians_data` ON `all_data`.`year` = `morticians_data`.`year` AND `all_data`.`month` = `morticians_data`.`month`
  74. LEFT JOIN
  75.     (
  76.         SELECT
  77.             YEAR(`s`.`startTime`) AS `year`,
  78.             MONTH(`s`.`startTime`) AS `month`,
  79.             SUM(`svs`.`status8`) AS `towed`
  80.         FROM
  81.             `luedenscheid`.`sessions` `s`
  82.         JOIN `luedenscheid`.`session_vehicle_statistics` `svs` ON `s`.`id` = `svs`.`sessionId`
  83.         WHERE
  84.             `svs`.`vehicleId` IN (1967, 1968, 1969, 1970, 1971, 1974, 1975, 1976)
  85.         GROUP BY
  86.             YEAR(`s`.`startTime`),
  87.             MONTH(`s`.`startTime`)
  88.     ) AS `towed_data` ON `all_data`.`year` = `towed_data`.`year` AND `all_data`.`month` = `towed_data`.`month`
  89. LEFT JOIN
  90.     (
  91.         WITH RankedSessions AS (
  92.             SELECT
  93.                 `s`.`id` AS `sessionId`,
  94.                 YEAR(`s`.`startTime`) AS `year`,
  95.                 MONTH(`s`.`startTime`) AS `month`,
  96.                 s.name as host,
  97.                 `s`.`playTime`,
  98.                 `ss`.`events`,
  99.                 ROW_NUMBER() OVER (PARTITION BY YEAR(`s`.`startTime`), MONTH(`s`.`startTime`) ORDER BY `s`.`playTime` DESC) AS PlayTimeRank,
  100.                 ROW_NUMBER() OVER (PARTITION BY YEAR(`s`.`startTime`), MONTH(`s`.`startTime`) ORDER BY `ss`.`events` DESC) AS EventsRank
  101.             FROM
  102.                 `luedenscheid`.`sessions` `s`
  103.             JOIN
  104.                 `luedenscheid`.`session_statistics` `ss` ON `s`.`id` = `ss`.`sessionId`
  105.         )
  106.         SELECT
  107.             `year`,
  108.             `month`,
  109.             MAX(CASE WHEN PlayTimeRank = 1 THEN `sessionId` END) AS `longestSessionId`,
  110.             MAX(CASE WHEN PlayTimeRank = 1 THEN `host` END) AS `longestSessionHost`,
  111.             MAX(CASE WHEN PlayTimeRank = 1 THEN `playTime` END) AS `longestSessionPlayTime`,
  112.             MAX(CASE WHEN EventsRank = 1 THEN `sessionId` END) AS `mostEventsSessionId`,
  113.             MAX(CASE WHEN EventsRank = 1 THEN `host` END) AS `mostEventsSessionHost`,
  114.             MAX(CASE WHEN EventsRank = 1 THEN `events` END) AS `mostEventsSessionCount`
  115.         FROM
  116.             RankedSessions
  117.         GROUP BY
  118.             `year`, `month`
  119.     ) AS `ranked_data` ON `all_data`.`year` = `ranked_data`.`year` AND `all_data`.`month` = `ranked_data`.`month`
  120. LEFT JOIN
  121.     (
  122.         WITH RankedSessions AS (
  123.             SELECT
  124.                 `s`.`id` AS `sessionId`,
  125.                 YEAR(`s`.`startTime`) AS `year`,
  126.                 MONTH(`s`.`startTime`) AS `month`,
  127.                 s.name as host,
  128.                 `s`.`playTime`,
  129.                 `ss`.`events`,
  130.                 ROW_NUMBER() OVER (PARTITION BY YEAR(`s`.`startTime`), MONTH(`s`.`startTime`) ORDER BY `ss`.`events` DESC) AS EventsRank
  131.             FROM
  132.                 `luedenscheid`.`sessions` `s`
  133.             JOIN
  134.                 `luedenscheid`.`session_statistics` `ss` ON `s`.`id` = `ss`.`sessionId`
  135.             WHERE (`ss`.`events` <> 0)
  136.             AND (((`ss`.`alerts` / `ss`.`events`) * 100 ) > 80)
  137.             AND (`ss`.`alerts` > 10)
  138.             AND (((`ss`.`forceFinishedEvents` / `ss`.`events`) * 100) < 20)
  139.             AND (((`ss`.`lstGeneratedEvents` / `ss`.`events`) * 100) < 20)
  140.         )
  141.         SELECT
  142.             `year`,
  143.             `month`,
  144.             MAX(CASE WHEN EventsRank = 1 THEN `sessionId` END) AS `mostEventsSessionId`,
  145.             MAX(CASE WHEN EventsRank = 1 THEN `host` END) AS `mostEventsSessionHost`,
  146.             MAX(CASE WHEN EventsRank = 1 THEN `events` END) AS `mostEventsSessionCount`
  147.         FROM
  148.             RankedSessions
  149.         GROUP BY
  150.             `year`, `month`
  151.     ) AS `real_ranked_data` ON `all_data`.`year` = `real_ranked_data`.`year` AND `all_data`.`month` = `real_ranked_data`.`month`
  152. LEFT JOIN
  153.     (
  154.         SELECT
  155.             YEAR(`ps`.`time`) AS `year`,
  156.             MONTH(`ps`.`time`) AS `month`,
  157.             COUNT(0) AS `total_startups`
  158.         FROM
  159.             `luedenscheid`.`player_startups` `ps`
  160.         GROUP BY
  161.             `year`, `month`
  162.     ) AS `startup_data` ON `all_data`.`year` = `startup_data`.`year` AND `all_data`.`month` = `startup_data`.`month`
  163. LEFT JOIN
  164.     (
  165.         WITH RankedPairsPlayTime AS (
  166.             SELECT
  167.                 `year`,
  168.                 `month`,
  169.                 `player1`,
  170.                 `player2`,
  171.                 `total_playtime`,
  172.                 `total_sessions`,
  173.                 ROW_NUMBER() OVER (PARTITION BY `year`, `month` ORDER BY `total_playtime` DESC) AS RowNum
  174.             FROM
  175.                 `view_player_pairing_monthly`
  176.         ),
  177.         RankedPairsSessions AS (
  178.             SELECT
  179.                 `year`,
  180.                 `month`,
  181.                 `player1`,
  182.                 `player2`,
  183.                 `total_playtime`,
  184.                 `total_sessions`,
  185.                 ROW_NUMBER() OVER (PARTITION BY `year`, `month` ORDER BY `total_sessions` DESC) AS RowNum
  186.             FROM
  187.                 `view_player_pairing_monthly`
  188.         )
  189.     SELECT
  190.         p1.`year`,
  191.         p1.`month`,
  192.         p1.`player1` AS `mostPlayTimePlayer1`,
  193.         p1.`player2` AS `mostPlayTimePlayer2`,
  194.         p1.`total_playtime` AS `mostPlayTime`,
  195.         s1.`player1` AS `mostSessionsPlayer1`,
  196.         s1.`player2` AS `mostSessionsPlayer2`,
  197.         s1.`total_sessions` AS `mostSessions`
  198.     FROM
  199.         RankedPairsPlayTime p1
  200.     JOIN
  201.         RankedPairsSessions s1
  202.     ON
  203.         p1.`year` = s1.`year` AND p1.`month` = s1.`month` AND p1.RowNum = 1 AND s1.RowNum = 1
  204.     ) AS `pairs_data` ON `all_data`.`year` = `pairs_data`.`year` AND `all_data`.`month` = `pairs_data`.`month`
  205. ORDER BY
  206.     `all_data`.`year` DESC,
  207.     `all_data`.`month` DESC;
  208.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement