Mysql
 sql >> Baza danych >  >> RDS >> Mysql

GROUP BY znacznik czasu co 15 minut, w tym brakujące wpisy

Jeśli naprawdę chcesz to zrobić w mysql, powinno to do pewnego stopnia zadziałać - w zależności od tego, jak chcesz zorganizować swoje 15-minutowe interwały. Dane wyjściowe podałem jako time from | time to | number of reports ponieważ uważam, że wyprowadzanie określonego znacznika czasu i kojarzenie z nim liczby przedziałów czasowych jest bezsensowne, a nawet trochę zwodnicze.

SELECT CONCAT (
        lpad(hours.a, 2, "0"),
        ":",
        lpad(minutes.a * 15, 2, "0"),
        ":00"
        ) AS 'from',
    CONCAT (
        lpad(hours.a, 2, "0"),
        ":",
        lpad((minutes.a * 15) + 14, 2, "0"),
        ":59"
        ) AS 'to',
    count(r.id)
FROM (
    SELECT 0 AS a

    UNION

    SELECT 1 AS a

    UNION

    SELECT 2 AS a

    UNION

    SELECT 3 AS a

    UNION

    SELECT 4 AS a

    UNION

    SELECT 5 AS a

    UNION

    SELECT 6 AS a

    UNION

    SELECT 7 AS a

    UNION

    SELECT 8 AS a

    UNION

    SELECT 9 AS a

    UNION

    SELECT 10 AS a

    UNION

    SELECT 11 AS a

    UNION

    SELECT 12 AS a

    UNION

    SELECT 13 AS a

    UNION

    SELECT 14 AS a

    UNION

    SELECT 15 AS a

    UNION

    SELECT 16 AS a

    UNION

    SELECT 17 AS a

    UNION

    SELECT 18 AS a

    UNION

    SELECT 19 AS a

    UNION

    SELECT 20 AS a

    UNION

    SELECT 21 AS a

    UNION

    SELECT 22 AS a

    UNION

    SELECT 23 AS a
    ) hours
INNER JOIN (
    SELECT 0 AS a

    UNION

    SELECT 1 AS a

    UNION

    SELECT 2 AS a

    UNION

    SELECT 3 AS a
    ) minutes
LEFT JOIN reports r ON hours.a = hour(r.t)
    AND minutes.a = floor(minute(r.t) / 15)
GROUP BY hours.a,
    minutes.a;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pytanie dotyczące unikalnej wielkości liter varchar w SQL

  2. Czy korzystam z puli połączeń JDBC?

  3. Wklejanie SQL do wiersza poleceń MySQL

  4. Wstawianie i wybieranie identyfikatorów UUID jako binarnych(16)

  5. Skrypt importu CSV do Mysql w celu dopasowania pól