ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ SQL Backend
Π Π΅ΠΆΠΈΠΌ SQL Backend ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ In-memory:
ΠΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ . ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΡΡΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ViQube(In-memory) ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π½Π° ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ SQL Backend.
ΠΠΌΠ΅ΡΡΡΡ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ NULL Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ (ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ViQube(In-memory)):
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ NULL Π² ΡΠ»ΡΡΠ°Π΅ ViQube(In-memory) Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ FALSE, Π° Π² ΡΠ»ΡΡΠ°Π΅ ViQube(SQL Backend) Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ NULL
ΠΡΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ NULL Π² ViQube(In-memory) ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊΒ (1+NULL =1), Π° Π² SQL-Π±Π°Π·Π΅ ΠΊΠ°ΠΊ UNDEFINED (1+NULL =NULL )
ΠΠΌΠ΅Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
ΠΒ PostgreSQL Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΒ
sum(boolean)
. ΠΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ»ΠΈΡΠΈΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΡΡΠ΅ΡΠ½ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ.Π Oracle Π½Π΅Ρ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ
Boolean
. Π ViQube ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΡΠΈΠ³ΡΡΠΈΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ (0/1). ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ SQL-Π·Π°ΠΏΡΠΎΡΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ VERTICA:
Π VERTICA ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΏΠΎ ΠΏΠΎΠ»Ρ Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ NULL-Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (Π½Π΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² NULL FIRST/LAST). ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΏΠΎΠ»Π΅ΠΉ Ρ NULL-Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° ΡΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ MySQL:
ΠΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ NULL-Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² MySQL Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ
NULLS FIRST
ΠΈNULLS LAST
.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΎΡΡΠΈ Π΄Π°Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
DATEDIFF
Π²ΠΌΠ΅ΡΡΠΎdate1 - date2
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:SELECT SUM(DATEDIFF(period2_id, period_id)) AS `0-0` FROM `fact_rur`
ΠΠ° Π·Π°ΠΏΡΠΎΡΡ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π³ΡΠ°Π½ΡΠ»ΡΡΠ½ΠΎΡΡΠΈ ΠΠΎΠ΄ Π·Π° Π½Π΅Π΄Π΅Π»Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π³ΠΎΠ΄ ΠΈ Π½Π΅Π΄Π΅Π»Ρ Π² Π³ΠΎΠ΄Ρ.
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ ΠΎΡΠ²Π΅ΡΡ Π½Π° Π·Π°ΠΏΡΠΎΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΡΠ°ΡΡΡΡ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ MySQL, ΠΎΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π² ViQube.
ΠΡΠ»ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½ΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΡΠΎ ΠΏΡΠΈ ΡΠΊΡΠΏΠΎΡΡΠ΅ ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ· ViQube, Π΄Π°Π½Π½ΡΠ΅, Ρ ΡΠ°Π½ΡΡΠΈΠ΅ΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ. ΠΠΊΡΠΏΠΎΡΡΠΈΡΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ViQube.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΡΠ°ΡΡΠ΅Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ MS SQL:
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ MS SQL, Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ Π΄Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
DATEDIFF(date1, date2)
. ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΠΈΡΠ°Π½ΠΈΡdate1-date2
, ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°.