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

Zapytanie SQL, które zwraca wszystkie daty nieużywane w tabeli

Masz rację — SQL nie ułatwia identyfikowania brakujących danych. Typową techniką jest łączenie sekwencji (z przerwami) z pełną sekwencją i wybieranie tych elementów w drugiej sekwencji bez odpowiedniego partnera w danych.

Tak więc sugestia od @BenHoffsteina utrzymanie stałej tabeli dat jest dobre.

Poza tym możesz dynamicznie tworzyć ten zakres dat za pomocą tabela liczb całkowitych . Zakładając integers tabela ma kolumnę i z liczbami co najmniej od 0 do 13, a Twoja tabela ma kolumnę daty o nazwie datestamp :

   SELECT candidate_date AS missing
     FROM (SELECT CURRENT_DATE + INTERVAL i DAY AS candidate_date
             FROM integers
            WHERE i < 14) AS next_two_weeks
LEFT JOIN my_table ON candidate_date = datestamp
    WHERE datestamp is NULL;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Główny klucz tworzenia tabeli migracji Rails

  2. Pobierz ostatnio wstawiony identyfikator za pomocą Mysql

  3. Czy mogę użyć tego samego ograniczenia klucza obcego w dwóch różnych tabelach?

  4. Różnica między VARCHAR i TEXT w MySQL

  5. Czy klejnot dm_mysql_adapter Datamappera jest obsługiwany w systemie Windows?