Mysql
 sql >> база данни >  >> RDS >> Mysql

Генерирайте данни за диапазон от дати, включително тези, които не присъстват в данните

Помощната календарна таблица ще работи добре. Най-простата възможна календарна таблица е една колона с дати.

create table calendar (
    cal_date date primary key
);

Можете да използвате електронна таблица или SQL, за да я попълните. Външно присъединяване към него ще донесе датите, които не съществуват във вашите данни. Ограничете разрешенията с GRANT и REVOKE и използвайте всички необходими средства, за да сте сигурни, че датите, които очаквате да бъдат там, всъщност са там. Изпълнявам ежедневен отчет на моя сървър, който се уверява, че има „n“ редове и потвърждава най-ранните и най-новите дати.

На някои платформи можете да генерирате серия от дати в движение и да я използвате директно или в CTE. PostgreSQL има функции за това; Не знам дали MySQL го прави. Те обаче не са трудни за писане, ако искате да пуснете свои собствени.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Изберете... за актуализация с индекс има проблем с едновременността

  2. SQL за връщане на обединен набор от резултати

  3. ResultSet ->getString() се срива, когато стойността е>=16

  4. MySQL - Актуализиране на стойности въз основа на подзаявка

  5. MySQL Great Circle Distance (формула на Haversine)