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

Zapytanie MySQL do uzyskania liczby na godzinę

możesz rozwiązać ten problem, tworząc tabelę, która będzie zawierała 24 wartości dla godzin (00:00, 01:00 itp.) i wykonaj lewe (lub prawe) złączenie z nią i tabelą zezwalającą na wartości null, dzięki czemu będziesz mieć wszystkie 24 wiersze, nawet jeśli Twoja tabela zawiera w ogóle 0 wierszy, więc grupowanie według powinno działać poprawnie.

Nie zapomnij skrócić wszystkiego poza godziną ze swojego stołu, kiedy wykonujesz dołączanie, więc wynik funkcji, którą wywołujesz i wykonujesz join on może być równa wartości tej tabeli pomocy.

możesz użyć następującego zapytania, aby wykonać zadanie po wypełnieniu tabeli testtime 24 wartościami test_time

select test_time,sum(sign(coalesce(idFromYourTable,0))) as count from testtime 
left join yourTable on test_time=hour(yourTableTime) 
group by test_time

Zapewni to 0 jako licznik, jeśli nie ma wartości pasujących do wiersza z tabeli testowej, podczas gdy licznik(*) zapewni 24 wiersze z 1 zamiast zer, nawet jeśli Twoja tabela jest pusta, również jeśli w Twojej tabeli jest tylko 1 wiersz, nie można odróżnić różnicy między 0 wierszami, ponieważ wyniki będą wyglądać tak samo dla kolejnych 2 różnych wierszy

ponieważ obie dadzą taką samą liczbę wierszy wyniku równą 1 , podczas gdy technika sumowania traktuje te wiersze inaczej



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak podłączyć bazę danych Presto do MySQL

  2. Dwie wstawki w PHP/MySQL przy użyciu LAST_INSERT_ID() i wierszy z innej tabeli

  3. Dodawanie obrazu do bazy danych w Javie

  4. Skopiować wartość autoinkrementacji do innej kolumny podczas wstawiania?

  5. Zrozumienie dziennika audytu ProxySQL