sql >> Databáze >  >> RDS >> Mysql

Generování série dat

pokud jste v situaci jako já, kde je vytváření dočasných tabulek zakázáno a není povoleno ani nastavení proměnných , ale chcete vygenerovat seznam dat v konkrétním období , řekněte aktuální rok, chcete-li provést nějakou agregaci, použijte toto

select * from 
(select adddate('1970-01-01',t4*10000 + t3*1000 + t2*100 + t1*10 + t0) gen_date from
 (select 0 t0 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
 (select 0 t1 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
 (select 0 t2 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
 (select 0 t3 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
 (select 0 t4 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v
where gen_date between '2017-01-01' and '2017-12-31'


  1. Postgres nepoužívá index, když je mnohem lepší volba index scan

  2. Chyba při načítání oci8.so se serverem Ubuntu 17.04 php 7 a apache2

  3. programově kontroluje otevřené připojení v JDBC

  4. Jak převést unixové časové razítko na hodnotu data/času v PostgreSQL