ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Ρ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ sql
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΊΠΎΠ½ (SQLΡ Π±Π»ΠΎΠΊΠΎΠ²
Π€ΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π³ΡΡΠΏΠΏΠΎΠΉ ΡΡΡΠΎΠΊ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΎΠΊΠ½ΠΎΠΌ, ΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π³ΡΡΠΏΠΏΡ ΡΡΡΠΎΠΊ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΊΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π΄Π°Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ, ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΡΡΡΠΎΠΊ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
function
Π€ΡΠ½ΠΊΡΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ Π² ΠΎΠΊΠ½Π΅. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΠΎΠΊΠ½Π°.
ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ, window_spec Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ORDER BY, Π½ΠΎ Π½Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ window_frame.
ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠ»ΡΡΡΠ°.
window_spec
ΠΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π²Π½ΡΡΡΠΈ Π³ΡΡΠΏΠΏΡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π³ΡΡΠΏΠΏΡ ΡΡΡΠΎΠΊ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PARTITION Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π‘Π΅ΠΊΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΡΠ΅Ρ ΡΡΡΠΎΠΊ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ORDER BY Π·Π°Π΄Π°Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΡΠΎΠΊ Π² ΡΠ΅ΠΊΡΠΈΠΈ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Frame Window ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π² ΡΠ΅ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Aggregate ΠΈΠ»ΠΈ Analytics.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° Π΄Π»Ρ ORDER BY ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ SORT.
ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π°. CLUSTER ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° Π΄Π»Ρ PARTITION BY ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ORDER BY.
Π£ΡΠΈΠΌΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ ΠΌΠΎΡΠ½Π΅ΠΉΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅ΡΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½Π°Π΄ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΡΡΠΎΠΊ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π²Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΠ΄ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ.
ΠΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΈΡ Ρ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, Π½ΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Π½Π΅ Π³ΡΡΠΏΠΏΠΈΡΡΡΡΡΡ Π² ΠΎΠ΄Π½Ρ, Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ Π²ΡΠ±ΠΎΡΠΊΠ΅ ΠΊΠ°ΠΊ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅. ΠΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΡΠ΅ΡΠΎΠ², ΡΠ°ΡΡΠ΅ΡΠ° ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΈ Π½Π°ΡΠ°ΡΡΠ°ΡΡΠΈΡ ΠΈΡΠΎΠ³ΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π°ΡΡΠΈΠ±ΡΡΠΈΠΈ.
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ
Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π²ΠΎΠΏΡΠΎΡ β Β«Π§ΡΠΎ Π·Π½Π°ΡΠΈΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅?Β»
ΠΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅, Π²ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π±Ρ Π΅Π΄ΠΈΠ½ΡΠΌ Β«ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΡΡΠΊΠΎΠΌΒ», Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΈΡΠ°ΡΡΡΡ Π°Π³ΡΠ΅Π³Π°ΡΡ. Π ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π·Π°ΠΏΡΠΎΡ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΡΠ°ΡΡΠΈ (ΠΎΠΊΠ½Π°) ΠΈ ΡΠΆΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠ²ΠΎΠΈ Π°Π³ΡΠ΅Π³Π°ΡΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΠΊΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ OVER(). ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π±ΡΠ΄Π΅ΠΌ Π½Π° ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ Π΄Π°ΡΡ, ΠΊΠ°Π½Π°Π» Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ΅Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΉ:
ΠΡΠΊΡΠΎΠ΅ΠΌ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ OVER() ΠΈ ΠΏΡΠΎΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΡΡΠΎΠ»Π±Π΅Ρ Β«ConversionsΒ»:
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ OVER() Π±Π΅Π· ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΡΠ°ΠΊΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΎΠΊΠ½ΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π½ΠΈΠΊΠ°ΠΊΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ Β«SumΒ» ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 14. ΠΡΠΎ ΡΠΊΠ²ΠΎΠ·Π½Π°Ρ ΡΡΠΌΠΌΠ° Π²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Β«ConversionsΒ».
PARTITION BY
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ PARTITION BY, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠΎΠ»Π±Π΅Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ Π² ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π°Π±ΠΎΡΠ° ΡΡΡΠΎΠΊ Π½Π° ΠΎΠΊΠ½Π°:
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ PARTITION BY ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π»Π° ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ ΠΏΠΎΠ»Ρ Β«DateΒ». Π’Π΅ΠΏΠ΅ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ²ΠΎΡ ΡΡΠΌΠΌΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠΎΠ»Π±ΡΠ° Β«ConversionsΒ».
ORDER BY
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΎΠΊΠ½Π° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ORDER BY:
Π ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ PARTITION BY Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΎΡΡ ORDER BY ΠΏΠΎ ΠΏΠΎΠ»Ρ Β«MediumΒ». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠΌΠΌΡ Π½Π΅ Π²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠΊΠ½Π΅, Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Β«ConversionsΒ» ΡΡΠΌΠΌΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌΠΈ. Π’ΠΎ Π΅ΡΡΡ ΠΌΡ ΠΏΠΎΡΡΠΈΡΠ°Π»ΠΈ Π½Π°ΡΠ°ΡΡΠ°ΡΡΠΈΠΉ ΠΈΡΠΎΠ³.
ROWS ΠΈΠ»ΠΈ RANGE
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ROWS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΡΡΠΎΠΊΠΈ Π² ΠΎΠΊΠ½Π΅, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π° ΡΠ΅ΠΊΡΡΠ΅ΠΉ.
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ RANGE, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ROWS, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, Π° Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΡΡΡΠΎΠΊ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ORDER BY. Π’ΠΎ Π΅ΡΡΡ ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ Π΄Π»Ρ RANGE ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΠΎΠΊ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΠΏΠΎ ΡΠ°Π½Π³Ρ.
ΠΠ±Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ROWS ΠΈ RANGE Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ORDER BY.
Π Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊ ROWS ΠΈΠ»ΠΈ RANGE ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°:
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΌΠΌΠ° ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ΅ΠΉΠΊΠ΅ Π² ΠΎΠΊΠ½Π΅. Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° Π² ΠΎΠΊΠ½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΈ ΡΡΠΎΠ»Π±Π΅Ρ Β«ConversionsΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Ρ ΡΠ΅ΠΌ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ.
ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ³Π½Π°ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ°Π±ΠΎΡΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ΄ Π²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ Π·Π°Π΄Π°ΡΡ.
ΠΠΈΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π³ΡΡΠΏΠΏΡ:
Π ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SELECT Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ FROM ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΡ Π³ΡΡΠΏΠΏΡ ΠΈ ΠΏΡΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ.
ΠΠ³ΡΠ΅Π³Π°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠ³ΡΠ΅Π³Π°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π° Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ OVER:
Π Π°Π½ΠΆΠΈΡΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π Π°Π½ΠΆΠΈΡΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π½ΠΆΠΈΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΠΎΠΊΠ½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠ΅ ΠΈΠ»ΠΈ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΠΉΡΠΈΠ½Π³.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ
Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ°Π·Π½ΡΠΌ ΡΡΡΠΎΠΊΠ°ΠΌ Π² ΠΎΠΊΠ½Π΅, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΎΠΊΠ½Π°.
ΠΠ½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠ½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.
ΠΠ°ΠΆΠ½ΠΎ! Π£ ΡΡΠ½ΠΊΡΠΈΠΉ PERCENTILE_CONT ΠΈ PERCENTILE_DISC, ΡΡΠΎΠ»Π±Π΅Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° WITHIN GROUP.
ΠΠ΅ΠΉΡ. ΠΠΎΠ΄Π΅Π»ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈΠΈ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ Π²ΠΊΠ»Π°Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° Π² Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ Π΄Π²Π΅ ΡΠ°Π·Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° Ρ id ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ (ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Client ID, Π½ΠΎΠΌΠ΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π° ΠΈ ΡΠΏ.), Π΄Π°ΡΠ°ΠΌΠΈ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡ .
ΠΠ΅ΡΠ²ΡΠΉ ΠΊΠ»ΠΈΠΊ
Π Google Analytics ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π½Π΅ΠΏΡΡΠΌΠΎΠΉ ΠΊΠ»ΠΈΠΊ. Π Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ 100% ΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ ΠΊΠ°Π½Π°Π»Ρ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΠ³Π΄Π° 100% ΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ FIRST_VALUE.
Π ΡΠ΄ΠΎΠΌ ΡΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠΌ Β«MediumΒ» ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ Β«First_ClickΒ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½ ΠΊΠ°Π½Π°Π» Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π· ΠΏΡΠΈΠ²Π΅Π΄ΡΠΈΠΉ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ ΠΊ Π½Π°ΠΌ Π½Π° ΡΠ°ΠΉΡ ΠΈ Π²ΡΡ ΡΠ΅Π½Π½ΠΎΡΡΡ Π·Π°ΡΡΠ΅Π½Π° Π΄Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ.
ΠΡΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΡΠ΅Ρ.
Π‘ ΡΡΠ΅ΡΠΎΠΌ Π΄Π°Π²Π½ΠΎΡΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: ΡΠ΅ΠΌ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΡΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Π½Π½ΠΎΠΉ ΠΎΠ½Π° ΡΡΠΈΡΠ°Π΅ΡΡΡ. ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ DENSE_RANK.
Π ΡΠ΄ΠΎΠΌ ΡΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠΌ Β«MediumΒ» ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ Β«RanksΒ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½ ΡΠ°Π½Π³ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π±Π»ΠΈΠ·ΠΎΡΡΠΈ ΠΊ Π΄Π°ΡΠ΅ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅Π½Π½ΠΎΡΡΡ ΡΠ°Π²Π½ΡΡ 1 (100%) ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠΎΡΠΊΠ°ΠΌ Π½Π° ΠΏΡΡΠΈ ΠΊ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΈ.
Π ΡΠ΄ΠΎΠΌ ΡΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠΌ Β«MediumΒ» ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ Β«Time_DecayΒ» Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π½Π½ΠΎΡΡΡΡ.
Π ΡΠ΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»Π°ΡΡ ΡΠ΅Π½Π½ΠΎΡΡΡ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Π°ΠΌ.
ΠΠ· ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΠΎΡΡΠ΅ΡΠ° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ°ΠΌΡΠΌ Π²Π΅ΡΠΎΠΌΡΠΌ ΠΊΠ°Π½Π°Π»ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°Π½Π°Π» Β«cpcΒ», Π° ΠΊΠ°Π½Π°Π» Β«cpaΒ», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π±Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈΠΈ, ΡΠΎΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ²ΠΎΡ Π΄ΠΎΠ»Ρ ΠΏΡΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ΅Π½Π½ΠΎΡΡΠΈ.
ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΠΎ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ T-SQL ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ. Π§Π°ΡΡΡ 1.
ΠΡΠ΅ Π² Microsoft SQL Server 2005 ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» β ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΡΡΡΠΎΠΊ Π²Π½ΡΡΡΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Select. ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π½Π΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Ρ ΡΡΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ β Β«Π§ΡΠΎ Π·Π½Π°ΡΠΈΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅?Β». ΠΠΊΠ½ΠΎ β Π·Π½Π°ΡΠΈΡ Π½Π°Π±ΠΎΡ ΡΡΡΠΎΠΊ, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅. ΠΠΊΠΎΠ½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π²Π΅ΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΊΠ½Π°.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΡΠ΅ ΡΡΠΎ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π±Π΅Π· Π½ΠΈΡ . ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ: Π½Π΅Ρ Π½ΡΠΆΠ΄Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠΎΠ²., ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π°Π±ΠΎΡΠ° Ρ ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ Π²ΡΠ±ΠΎΡΠΊΠ΅ ΠΊΠ°ΠΊ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π°Π΄ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ: ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ Π²ΡΠ²ΠΎΠ΄Π°, ΡΡΡΠΎΠΊΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, Π° Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
ΠΠΊΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ OVER(). ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
ΠΠΊΠΎΠ½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ (ΡΡΠΎΠ»Π±Π΅Ρ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ) OVER ([PARTITION BY ΡΡΠΎΠ»Π±Π΅Ρ Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ] [ORDER BY ΡΡΠΎΠ»Π±Π΅Ρ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ] [ROWS ΠΈΠ»ΠΈ RANGE Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π³ΡΡΠΏΠΏΡ])
ΠΡΡΠΎΡΡΠΈΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ°ΡΡΠΈ. Π‘ΠΊΠ°ΠΆΡ Π»ΠΈΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π½Π°: Π°Π³ΡΠ΅Π³ΠΈΡΡΡΡΠΈΠ΅, ΡΠ°Π½ΠΆΠΈΡΡΡΡΠΈΠ΅, ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅:
ΠΠ°ΠΊ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ Π²ΡΡ Π½Π° ΡΠ²Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠΌ. ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ PostgreSQL
Π― Ρ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, Π΄Π°ΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ postgresql, Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΈΡΠ°Ρ ΠΈΡ
ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΡΠΎΠ±ΠΎΠΉ ΠΌΠ°Π³ΠΈΠ΅ΠΉ Π΄Π»Ρ ΠΈΠ·Π±ΡΠ°Π½Π½ΡΡ
. ΠΡ ΠΈΠ»ΠΈ Π² Π»ΡΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Β«ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΡΡΒ» ΡΠΎ StackOverflow Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° Β«row_number() OVER ()Β», Π½Π΅ Π²Π΄Π°Π²Π°ΡΡΡ Π² Π΄Π΅ΡΠ°Π»ΠΈ. Π Π²Π΅Π΄Ρ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β ΠΏΠΎΠ»Π΅Π·Π½Π΅ΠΉΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» PostgreSQL.
ΠΠΎΠΏΡΠΎΠ±ΡΡ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Ρ ΠΎΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΡΠ½ΠΈΡΡ, ΡΡΠΎ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π²ΡΠ±ΠΎΡΠΊΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π΅ΠΉ. Π’.Π΅. Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ postgres ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²Π΅ΡΡ Π·Π°ΠΏΡΠΎΡ (ΠΊΡΠΎΠΌΠ΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ limit), Π° ΠΏΠΎΡΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ:
ΠΠΊΠ½ΠΎ β ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅Π΅ Π½Π°Π±ΠΎΡ ΡΡΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΠΈΡΠ΅ΠΌ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎ Π·Π°Π΄Π°Π½ΠΎ ΠΏΡΡΡΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ (), Ρ.Π΅. ΠΎΠΊΠ½ΠΎΠΌ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠΎΠΌ ΡΠ΅Π»Π΅ΠΊΡΠ΅ ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠΌ id, header ΠΈ score ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΡΡΡΠΎΠΊ.
Π ΠΎΠΊΠΎΠ½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ORDER BY, ΡΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΅ΡΠ΅ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π·Π°ΠΏΠΎΡΠ° ORDER BY id, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ΅ΠΉΡΠΈΠ½Π³ ΠΏΠΎΡΡΠΈΡΠ°Π½ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π²Π΅ΡΠ½ΠΎ. Π’.Π΅. ΠΏΠΎΡΠ³ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π» ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ΄ΠΈΠ½ order Π½ΠΈΡΡΡΡ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΌΡ.
ΠΠ°Π»ΡΡΠ΅ β Π±ΠΎΠ»ΡΡΠ΅. Π ΠΎΠΊΠΎΠ½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»ΠΎΠ²ΠΎ PARTITION BY [expression],
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ row_number() OVER (PARTITION BY section), ΡΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ΡΡΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄ΡΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ:
ΠΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠ°ΡΡΠΈΡΠΈΡ, ΡΠΎ ΠΏΠ°ΡΡΠΈΡΠΈΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡ Π·Π°ΠΏΡΠΎΡ.
Π’ΡΡ ΡΡΠ°Π·Ρ Π½Π°Π΄ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΠΉ Π½ΡΠ°Π½Ρ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ, ΠΈΡΡΠΈΠ½Π½ΡΠ΅ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΌΠ°Π½ΡΠ°Π»Π° β ΡΡΠΎ row_number(), rank(), lead() ΠΈ Ρ.Π΄., Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ-Π°Π³ΡΠ΅Π³Π°ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: sum(), count() ΠΈ Ρ.Π΄. Π’Π°ΠΊ Π²ΠΎΡ, ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ, Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ»Π΅Π³ΠΊΠ° ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ: Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°Π΄Π°Π½ ORDER BY Π² ΠΎΠΊΠ½Π΅, ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΈΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ (ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΡΡΠΎΠΊ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ). ΠΡΠ»ΠΈ ΠΆΠ΅ ORDER BY Π·Π°Π΄Π°Π½, ΡΠΎ ΠΏΠΎΠ΄ΡΡΠ΅Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΠ΄Π΅Ρ ΠΎΡ Π½Π°ΡΠ°Π»Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΈ Π΄ΠΎ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΠΊΠ°Ρ (ΡΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π² Π²Π°ΠΊΡΡΠΌΠ΅) ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π±Π°Π»Π°Π½ΡΠΎΠ².
ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ·Π½Π°ΡΡ Π·Π°ΠΎΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΠ»ΡΡ ΠΎΡΡΠ°ΡΠΎΠΊ Π½Π° Π±Π°Π»Π°Π½ΡΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ:
Π’.Π΅. Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΡΠ΅Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΡΠ΅ΠΉΠΌΠ΅. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ΅ΠΉΠΌ β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΡΡΠΎΠΊ ΠΎΡ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ (Π΅ΡΠ»ΠΈ Π±ΡΠ»ΠΎ Π±Ρ PARTITION BY, ΡΠΎ ΠΎΡ Π½Π°ΡΠ°Π»Π° ΠΏΠ°ΡΡΠΈΡΠΈΠΈ).
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΌΡ Π΄Π»Ρ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΠΎΠΉ ΡΡΠ½ΡΠΈΠΈ sum Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ORDER BY Π² ΠΎΠΊΠ½Π΅, ΡΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠΈΡΠ°Π΅ΠΌ ΠΎΠ±ΡΡΡ ΡΡΠΌΠΌΡ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π΅Ρ Π²ΠΎ Π²ΡΠ΅Ρ
ΡΡΡΠΎΠΊΠ°Ρ
. Π’.Π΅. ΡΡΠ΅ΠΉΠΌΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡ Π½Π°Π±ΠΎΡ ΡΡΡΠΎΠΊ
ΠΎΡ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΏΠ°ΡΡΠΈΡΠΈΠΈ.
ΠΠΎΡ ΡΠ°ΠΊΠ°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π΅ΡΠ»ΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠΊΠΎΠ½Π½ΡΠ΅. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ-ΡΠ°ΠΊΠΈ ΡΡΡΠ°Π½Π½ΡΠΉ, ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ SQL-ΡΡΠ°Π½Π΄Π°ΡΡΠ°.
ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΊ, ΠΎΠ½ΠΈ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ Π½ΠΈΡΡΡΡ Π½Π΅ ΠΌΠ΅ΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ Π²Ρ ΡΠ°ΠΌ Π² Π½ΠΈΡ Π½Π΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΠ»Π΅ OVER, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΡΡ ΠΈΠΌ ΠΈΠΌΡ ΠΈ Π²ΡΠ½Π΅ΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ WINDOW, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΌΠ°Π½ΡΠ°Π»Π°:
ΠΠ΄Π΅ΡΡ w ΠΏΠΎΡΠ»Π΅ ΡΠ»ΠΎΠ²Π° OVER ΠΈΠ΄Π΅Ρ Π±Π΅Π· ΡΠΆΠ΅ ΡΠΊΠΎΠ±ΠΎΠΊ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π² Π·Π°ΠΏΡΠΎΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ WHERE, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅ΠΉ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ, Ρ.Π΅. Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠΏ 5 Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅, Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡ:
ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ. ΠΠΎΠΌΠΈΠΌΠΎ row_number() Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ lag, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠ΅Ρ ΡΡΡΠΎΠΊΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΡΡΠ΅ΠΉΠΌΠ°. Π ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΊΠΎΠ² Π½ΠΎΠ²ΠΎΡΡΡ ΠΎΡΡΡΠ°Π΅Ρ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π² ΡΠ΅ΠΉΡΠΈΠ½Π³Π΅:
ΠΡΠΎΡΡ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ Π½Π°ΠΊΠΈΠ΄Π°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Π³Π΄Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΡΠΈΠΈ. Π ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π° ΠΏΠΎΠ΄ΠΊΠ°ΡΡ ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ «Π¦ΠΈΠ½ΠΊΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΄», Π³Π΄Π΅ ΠΌΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΡ Π½Π° ΡΠ²Π΅ΡΠ΅!
ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² SQL β ΡΡΠΎ ΡΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, Π΄Π°ΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ Ρ SQL, Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΈΡΠ°Ρ ΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΡΠΎΠ±ΠΎΠΉ ΠΌΠ°Π³ΠΈΠ΅ΠΉ Π΄Π»Ρ ΠΈΠ·Π±ΡΠ°Π½Π½ΡΡ . Π, Ρ ΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Ρ SQL Server 2005, ΠΊΡΠΎ-ΡΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Β«ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΠΈΡΒ» ΠΈΡ ΡΠΎ StackOverflow, Π½Π΅ Π²Π΄Π°Π²Π°ΡΡΡ Π² Π΄Π΅ΡΠ°Π»ΠΈ. ΠΡΠΎΠΉ ΡΡΠ°ΡΡΡΠΉ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΠ°Π·Π²Π΅Π½ΡΠ°ΡΡ ΠΌΠΈΡ ΠΎ Π½Π΅ΠΏΡΠΈΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ SQL ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π΄Π°ΡΠ°ΡΠ΅ΡΠ΅.
ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ GROUP BY ΠΈ Π½Π΅ JOIN
Π‘ΡΠ°Π·Ρ ΠΏΡΠΎΡΡΠ½ΠΈΠΌ, ΡΡΠΎ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ Π½Π΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ GROUP BY. ΠΠ½ΠΈ Π½Π΅ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ, Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π½Π° Π²Ρ ΠΎΠ΄. ΠΠΎ-Π²ΡΠΎΡΡΡ , Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ GROUP BY, OVER ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΡΠΎΠΊΠ°ΠΌ. Π Π²-ΡΡΠ΅ΡΡΠΈΡ , ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠΈΡΠ°ΡΡ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠΈΠ΅ ΡΡΠ΅Π΄Π½ΠΈΠ΅ ΠΈ ΠΊΡΠΌΡΠ»ΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠΌΠΌΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π²ΡΠ±ΠΎΡΠΊΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π΅ΠΉ. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ SQL ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²Π΅ΡΡ Π·Π°ΠΏΡΠΎΡ (ΠΊΡΠΎΠΌΠ΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ limit), Π° ΡΠΆΠ΅ ΠΏΠΎΡΠΎΠΌ ΡΡΠΈΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΊΠ½Π°.
ΠΠΊΠ΅ΠΉ, Ρ GROUP BY ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ. ΠΠΎ Π² SQL ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΡΡΠΌΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΡ ΠΈΠ»ΠΈ JOIN. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, JOIN ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠΎΠ², Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ JOIN ΠΈ OVER ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ. ΠΠΎ OVER Π΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Ρ, ΡΠ΅ΠΌ ΠΆΡΡΡΠΊΠΈΠΉ JOIN. ΠΠ° ΠΈ ΠΎΠ±ΡΡΠΌ ΠΊΠΎΠ΄Π° Π² ΠΈΡΠΎΠ³Π΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½ΡΡΠ΅.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°
ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° OVER ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΡΡ
Π΄ΡΡΠ³ΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²: PARTITION BY, ORDER BY ΠΈ ROWS. ΠΡΠΎ ORDER BY, PARTITION BY ΠΈ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ LAG, LEAD, RANK ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π±ΡΠ΄ΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° Π΄Π°ΡΠ°ΡΠ΅ΡΠ΅ ΠΎΠ»ΠΈΠΌΠΏΠΈΠΉΡΠΊΠΈΡ
ΠΌΠ΅Π΄Π°Π»ΠΈΡΡΠΎΠ² ΠΎΡ Datacamp. Π’Π°Π±Π»ΠΈΡΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ summer_medals ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΠ»ΠΈΠΌΠΏΠΈΠ°Π΄ Ρ 1896 ΠΏΠΎ 2010:
ROW_NUMBER ΠΈ ORDER BY
ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π²ΡΡΠ΅, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ OVER ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΡΠ½ΡΠΌ Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ROW_NUMBER, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ:
ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΡΠ° Β«ΡΠΏΠΎΡΡΡΠΌΠ΅Π½ β Π²ΠΈΠ΄ ΡΠΏΠΎΡΡΠ°Β» ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π½ΠΎΠΌΠ΅Ρ, ΠΏΡΠΈΡΡΠΌ ΠΊ ΡΡΠΈΠΌ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ row_number.
ROW_NUMBER ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Ρ ORDER BY, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΡΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ Π½ΡΠΌΠ΅ΡΠΎΠ²Π°ΡΡΡΡ. ΠΡΠ±Π΅ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ DISTINCT Π²ΡΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π²ΠΈΠ΄Ρ ΡΠΏΠΎΡΡΠ° ΠΈ ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΡΠ΅ΠΌ ΠΈΡ
Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
PARTITION BY ΠΈ LAG, LEAD ΠΈ RANK
PARTITION BY ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ°. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π΄Π΅Π»ΡΡΡΡ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ Ρ ΡΡΡΡΠΎΠΌ Π΄ΡΡΠ³ΠΈΡ ΡΡΡΠΎΠΊ ΡΠΎΠΉ ΠΆΠ΅ Π³ΡΡΠΏΠΏΡ (ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠ΅Π½Π½ΠΈΡΠΈΡΡΠ° Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅Π½Π½ΠΈΡΠΈΡΡΠ°ΠΌΠΈ, Π½ΠΎ Π½Π΅ Ρ Π±Π΅Π³ΡΠ½Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΠ²ΡΠ°ΠΌΠΈ). ΠΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠΊΠΎΠ½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠΈΠΏΠ° LAG, LEAD, RANK ΠΈ Ρ. Π΄.
Π€ΡΠ½ΠΊΡΠΈΡ LAG Π±Π΅ΡΡΡ ΡΡΡΠΎΠΊΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ»Π° ΠΏΠ΅ΡΠ΅Π΄ Π½Π΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Ρ
ΠΎΡΠΈΠΌ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅Ρ
ΠΎΠ»ΠΈΠΌΠΏΠΈΠΉΡΠΊΠΈΡ
ΡΠ΅ΠΌΠΏΠΈΠΎΠ½ΠΎΠ² ΠΏΠΎ ΡΠ΅Π½Π½ΠΈΡΡ (ΠΌΡΠΆΡΠΈΠ½ ΠΈ ΠΆΠ΅Π½ΡΠΈΠ½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ), Π½Π°ΡΠΈΠ½Π°Ρ Ρ 2004 Π³ΠΎΠ΄Π°, ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ
Π²ΡΡΡΠ½ΠΈΡΡ, ΠΊΡΠΎ Π±ΡΠ» ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΡΠ΅ΠΌΠΏΠΈΠΎΠ½ΠΎΠΌ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°Π³ΠΎΠ². Π‘Π½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°ΠΏΡΠΎΡΠ° Β«ΡΠ΅ΠΌΠΏΠΈΠΎΠ½Ρ ΠΏΠΎ ΡΠ΅Π½Π½ΠΈΡΡ Ρ 2004 Π³ΠΎΠ΄Π°Β» ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°. Π Π·Π°ΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΈΡ
ΠΏΠΎ ΠΏΠΎΠ»Ρ ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΌΠΏΠΈΠΎΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ LAG:
Π€ΡΠ½ΠΊΡΠΈΡ PARTITION BY Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΠ»Π° ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠ΅Ρ
ΠΌΡΠΆΡΠΈΠ½, ΠΏΠΎΡΠΎΠΌ Π²ΡΠ΅Ρ
ΠΆΠ΅Π½ΡΠΈΠ½. ΠΠ»Ρ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Π΅ΠΉ 2008 ΠΈ 2012 Π³ΠΎΠ΄Π° ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ΅ΠΌΠΏΠΈΠΎΠ½; ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° 3 ΠΎΠ»ΠΈΠΌΠΏΠΈΠ°Π΄Ρ, Ρ ΡΠ΅ΠΌΠΏΠΈΠΎΠ½ΠΎΠ² 2004 Π³ΠΎΠ΄Π° Π½Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΏΠΎΠ»ΡΡ
ΡΡΠΎΠΈΡ null.
Π€ΡΠ½ΠΊΡΠΈΡ LEAD ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° LAG, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, ΠΊΡΠΎ ΡΡΠ°Π» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ΅ΠΌΠΏΠΈΠΎΠ½ΠΎΠΌ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΡΡΠΌΠ΅Π½Π°:
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ RANK ΠΏΠΎΡ ΠΎΠΆ Π½Π° ROW_NUMBER, Π½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊΠ°ΠΌ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π° Β«Π»ΠΈΡΠ½ΠΈΠ΅Β» Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ. ΠΡΡΡ ΡΠ°ΠΊΠΆΠ΅ DENSE_RANK, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠ². ΠΠ²ΡΡΠΈΡ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΠΎΡ ΡΠ°Π½ΠΆΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ°Π½ ΠΏΠΎ ΡΠΈΡΠ»Ρ ΠΎΠ»ΠΈΠΌΠΏΠΈΠ°Π΄, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ, ΡΠ°Π·Π½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ:
ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ
ΠΠΎΡ ΡΠ°ΠΊ ΠΌΡ ΠΈ ΡΠ°Π·Π»ΠΎΠΆΠΈΠ»ΠΈ ΡΡΠΎΡ Π΄Π°ΡΠ°ΡΠ΅Ρ ΠΏΠΎ ΠΏΠΎΠ»ΠΎΡΠΊΠ°ΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ° ΡΡΠΎΠΌ Π½Π°ΡΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΈ Π½Π΅ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠ³Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ»Ρ Π½ΠΈΡ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π²Π΅ΡΠ΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ROWS, NTILE ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (SUM, MAX, MIN ΠΈ Π΄ΡΡΠ³ΠΈΠ΅), Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π·.