Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ sql
ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ T-SQL
Π ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Microsoft SQL Server Π΅ΡΡΡ Π΄Π²Π΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠΎΡΠΊΠΈ:
Π SQL Server 2005 Π±ΡΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ.
Π SQL Server 2012 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π±ΡΠ»Π° ΡΠ°ΡΡΠΈΡΠ΅Π½Π°.
ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡΠΌΠΈ Π² SQL Server 2012, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠΉ. Π ΡΡΠΎΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΊΠ°ΠΊ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π² SQL Server, ΡΠ°ΠΊ ΠΈ ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΡΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΡΠΏΠΎΠΌΠΈΠ½Π°Ρ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Ρ Π±ΡΠ΄Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΠΎΠ½Π° Π² SQL Server, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΡΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°.
Π‘ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² SQL Server 2005 Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ Π²ΡΠ΅ ΡΠ°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. Π― ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ·ΡΠΊΠ°, Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΌΠΈ ΠΎΠΊΠΎΠ½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. ΠΡΠΎ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ²ΠΎΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΡΡΠ΅Π±ΡΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π°Π½Π½ΡΡ , Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ SQL-ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (Π Π‘Π£ΠΠ) Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π²ΠΈΠΆΡΡΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΈ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΡΠΎΠΉ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΠΊΠΎΠ½Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π±ΡΠ΄ΡΡΠ΅Π΅ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π°Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ SQL Server, Π° Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΠΈΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅, Π½Π΅ ΠΏΡΠΎΠΏΠ°Π΄Π΅Ρ Π·ΡΡ.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ± ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ , ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π΅.
Π£ΡΠΈΠΌΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ ΠΌΠΎΡΠ½Π΅ΠΉΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅ΡΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½Π°Π΄ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΡΡΠΎΠΊ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π²Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΠ΄ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ.
ΠΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΈΡ Ρ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, Π½ΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Π½Π΅ Π³ΡΡΠΏΠΏΠΈΡΡΡΡΡΡ Π² ΠΎΠ΄Π½Ρ, Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ Π²ΡΠ±ΠΎΡΠΊΠ΅ ΠΊΠ°ΠΊ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅. ΠΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΡΠ΅ΡΠΎΠ², ΡΠ°ΡΡΠ΅ΡΠ° ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΈ Π½Π°ΡΠ°ΡΡΠ°ΡΡΠΈΡ ΠΈΡΠΎΠ³ΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π°ΡΡΠΈΠ±ΡΡΠΈΠΈ.
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ
Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π²ΠΎΠΏΡΠΎΡ β Β«Π§ΡΠΎ Π·Π½Π°ΡΠΈΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅?Β»
ΠΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅, Π²ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π±Ρ Π΅Π΄ΠΈΠ½ΡΠΌ Β«ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΡΡΠΊΠΎΠΌΒ», Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΈΡΠ°ΡΡΡΡ Π°Π³ΡΠ΅Π³Π°ΡΡ. Π ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π·Π°ΠΏΡΠΎΡ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΡΠ°ΡΡΠΈ (ΠΎΠΊΠ½Π°) ΠΈ ΡΠΆΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠ²ΠΎΠΈ Π°Π³ΡΠ΅Π³Π°ΡΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΠΊΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ 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Ρ Π±Π»ΠΎΠΊΠΎΠ²
Π€ΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π³ΡΡΠΏΠΏΠΎΠΉ ΡΡΡΠΎΠΊ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΎΠΊΠ½ΠΎΠΌ, ΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π³ΡΡΠΏΠΏΡ ΡΡΡΠΎΠΊ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΊΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π΄Π°Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ, ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΡΡΡΠΎΠΊ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
function
Π€ΡΠ½ΠΊΡΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ Π² ΠΎΠΊΠ½Π΅. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΠΎΠΊΠ½Π°.
ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ, window_spec Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ORDER BY, Π½ΠΎ Π½Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ window_frame.
ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠ»ΡΡΡΠ°.
window_spec
ΠΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π²Π½ΡΡΡΠΈ Π³ΡΡΠΏΠΏΡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π³ΡΡΠΏΠΏΡ ΡΡΡΠΎΠΊ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PARTITION Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π‘Π΅ΠΊΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΡΠ΅Ρ ΡΡΡΠΎΠΊ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ORDER BY Π·Π°Π΄Π°Π΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΡΠΎΠΊ Π² ΡΠ΅ΠΊΡΠΈΠΈ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Frame Window ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π² ΡΠ΅ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Aggregate ΠΈΠ»ΠΈ Analytics.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° Π΄Π»Ρ ORDER BY ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ SORT.
ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π°. CLUSTER ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° Π΄Π»Ρ PARTITION BY ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ORDER BY.
ΠΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Oracle
ΠΡΠΈΠ²Π΅Ρ, Π₯Π°Π±Ρ! Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π³Π΄Π΅ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ, ΡΠ°ΡΡΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ (Π·Π° ΠΌΠ°Ρ ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅) ΠΌΠΈΡΠ°ΠΏΡ. ΠΠ° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ Π²ΡΡΡΡΠΏΠ°Π» ΠΌΠΎΠΉ ΠΊΠΎΠ»Π»Π΅Π³Π° Ρ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠΌ ΠΎΠ± ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ ΠΈ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ°Ρ Oracle. ΠΡΠ° ΡΠ΅ΠΌΠ° ΠΏΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ ΠΌΠ½Π΅ ΡΡΠΎΡΡΠ΅ΠΉ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎ Π½Π΅ΠΉ ΠΏΠΎΡΡ.
Π‘ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΡΠΎΡΠ½ΠΈΡΡ, ΡΡΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Oracle ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ SQL. ΠΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Ρ SQL (ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π·Π΄Π΅ΡΡ ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ²) ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ Ρ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ°ΠΌΠΈ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
ΠΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΊΡΠ°ΡΠΊΠΎ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π² Π΄Π²ΡΡ ΡΠ°ΡΡΡΡ . ΠΠΎΡΡ ΡΠΊΠΎΡΠ΅Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ. ΠΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ β Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΠΊΠ°Ρ.
Π§Π°ΡΡΡ 1: ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Order by, Group by, Having
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ β Order by, Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ΅ β Group by, ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ β Having ΠΈ ΠΎ ΠΏΠ»Π°Π½Π΅ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠΎ ΠΎΠ±ΠΎ Π²ΡΠ΅ΠΌ ΠΏΠΎ-ΠΏΠΎΡΡΠ΄ΠΊΡ.
Order by
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Order by Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Ρ.Π΅. ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΡΠΎΠ»Π±ΡΡ. Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ ΡΡΠΎΠ»Π±ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Order by Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈ ΠΊ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌ, ΠΈ ΠΊ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΌ ΡΡΠΎΠ»Π±ΡΠ°ΠΌ. Π‘ΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠΈΡΡΡΡΡΡ ΠΏΠΎ Π°Π»ΡΠ°Π²ΠΈΡΡ.
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΠ»Π±ΡΡ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ DESC.
SELECT column1, column2, β¦ (ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅)
FROM table_name
ORDER BY column1, column2β¦ ASC|DESC;
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
:
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΈΡ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΏΠΎ ΡΡΠΎΠ»Π±ΡΡ ID.
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π‘ΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎ ΡΡΠΎΠ»Π±ΡΡ ID ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ DESC.
Π ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. Π‘Π½Π°ΡΠ°Π»Π° ΠΈΠ΄Π΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ ΠΎΡΠ΄Π΅Π»Ρ. ΠΡΠΈ ΡΠ°Π²Π΅Π½ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π΄Π»Ρ ΠΏΠΎΠ»Π΅ΠΉ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΎΡΠ΄Π΅Π»ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΡΠΎΡΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ; Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ β ΡΡΠΎ Π·Π°ΡΠΏΠ»Π°ΡΠ°.
ΠΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ.
Group by
Π SQL ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Group by ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π³ΡΡΠΏΠΏΠ°Ρ . ΠΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π±ΠΎΡΡ, ΡΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅.
ΠΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΡΠΎΠ»Π±ΡΠ°ΠΌ. ΠΠΎΡΠ»Π΅ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΡΠΎΠ»Π±ΡΠ΅.
Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° SQL Group by ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ SQL Having. ΠΠ³ΡΠ΅Π³Π°ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² SQL β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π½Π°Π±ΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠΎΠ»Π±ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: COUNT(), MIN(), MAX(), AVG(), SUM()
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Group by ΡΡΠΎΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° WHERE Π² Π·Π°ΠΏΡΠΎΡΠ΅ SELECT. ΠΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ORDER BY, ΡΡΠΎΠ±Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠ°ΠΊ, ΠΎΠΏΠΈΡΠ°ΡΡΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»Π°. Π ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠΉ Π²ΡΠ±ΠΎΡΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»Π° ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π·Π°ΡΠΏΠ»Π°ΡΠ°.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 1 (Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ):
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 2 (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ):
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ΅ΡΠ°Π΅ΠΌ Π·Π°Π΄Π°ΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ, Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠ΅Π»Π΅ΠΊΡΠ°, Ρ.Π΅. Π² ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π»Π΅ΠΊΡ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ. ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΡ.
ΠΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ΅Π» ΠΊΠΎΡΠΎΡΠ΅ ΠΈ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½Π΅Π΅, Ρ ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎ ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ.
ΠΠ°ΠΊ Ρ Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Group by: ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ Π΄Π²Π° ΠΎΡΠ΄Π΅Π»Π° Π½Π° Π³ΡΡΠΏΠΏΡ qa ΠΈ dev. ΠΠΎΡΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΈΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ.
Having
Having ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ. ΠΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Having ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² SQL ΡΠ°ΠΌ, Π³Π΄Π΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ WHERE.
ΠΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WHERE ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΡΡΠΎΠΊ, ΡΠΎ Having ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠ°, ΡΠΈΠ»ΡΡΡΡΡΡΠ΅Π³ΠΎ Π³ΡΡΠΏΠΏΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· Π³ΡΡΠΏΠΏ ΡΡΡΠΎΠΊ.
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΡΠ΄Π΅Π»Ρ ΡΠΎ ΡΡΠ΅Π΄Π½Π΅ΠΉ Π·Π°ΡΠΏΠ»Π°ΡΠΎΠΉ Π±ΠΎΠ»ΡΡΠ΅ 4000. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 1 (Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ GROUP BY ΠΈ HAVING):
Π Π΅ΡΠ΅Π½ΠΈΠ΅ 2 (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ GROUP BY ΠΈ HAVING):
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π²Π° ΠΏΠΎΠ΄ΡΠ΅Π»Π΅ΠΊΡΠ°: ΠΎΠ΄ΠΈΠ½ Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°ΡΠΏΠ»Π°ΡΡ, Π΄ΡΡΠ³ΠΎΠΉ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π΄Π½Π΅ΠΉ Π·Π°ΡΠΏΠ»Π°ΡΡ. ΠΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΡΡΡ ΠΆΠ΅, Π²ΡΡΠ΅Π» Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½Π΅Π΅.
ΠΠ»Π°Π½ Π·Π°ΠΏΡΠΎΡΠ°
ΠΠ΅ΡΠ΅Π΄ΠΊΠΎ Π±ΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΠΎΠ»Π³ΠΎ, ΠΏΠΎΡΡΠ΅Π±Π»ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π΄ΠΈΡΠΊΠΎΠ². Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π·Π°ΠΏΡΠΎΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠ»Π°Π½ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠ»Π°Π½ Π·Π°ΠΏΡΠΎΡΠ° β ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΏΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°, Ρ.Π΅. ΠΊΠ°ΠΊ Π‘Π£ΠΠ Π±ΡΠ΄Π΅Ρ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ. Π‘Π£ΠΠ ΡΠ°ΡΠΏΠΈΡΠ΅Ρ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² Π²ΡΠ΅, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΡ, Π³Π΄Π΅ Π² Π·Π°ΠΏΡΠΎΡΠ΅ ΡΠ»Π°Π±ΡΠ΅ ΠΌΠ΅ΡΡΠ° ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»Π°Π½Π° Π·Π°ΠΏΡΠΎΡΠ° ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ .
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ SQL ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Oracle ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ βΠΏΠ»Π°Π½ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡβ. ΠΡΠΎΡ ΠΏΠ»Π°Π½ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Oracle Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π²ΡΠ±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ SQL ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Π°Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ°Π³ΠΎΠ² ΠΈ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ.
Π ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΏΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°, ΠΎΡΠ½ΠΎΡΡΡΡΡ Toad, SQL Navigator, PL/SQL Developer ΠΈ Π΄Ρ. ΠΠ½ΠΈ Π²ΡΠ΄Π°ΡΡ ΡΡΠ΄ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΊΠΎΡΡΠΈ Π·Π°ΠΏΡΠΎΡΠ°, ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ: cost β ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ cardinality (ΠΈΠ»ΠΈ rows) β ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎΡΡΡ (ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ).
Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ΅ΠΌ ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π·Π°ΠΏΡΠΎΡ.
ΠΠΈΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π°Π½Π°Π»ΠΈΠ· ΠΏΠ»Π°Π½Π° Π·Π°ΠΏΡΠΎΡΠ°. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΠ΅Π»Π΅ΠΊΡ, Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ β Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ 22 ΡΡΡΠΎΠΊΠΈ, Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ β 15.
ΠΠ½Π°Π»ΠΈΠ· ΠΏΠ»Π°Π½Π° Π·Π°ΠΏΡΠΎΡΠ°:
ΠΡΡ ΠΎΠ΄ΠΈΠ½ Π°Π½Π°Π»ΠΈΠ· ΠΏΠ»Π°Π½Π° Π·Π°ΠΏΡΠΎΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π²Π° ΠΏΠΎΠ΄ΡΠ΅Π»Π΅ΠΊΡΠ°:
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π΅ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² SQL ΠΈ Ρ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²Π°ΠΌ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°Ρ .
ΠΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΏΡΠΎΡΡΡΡ Π²Π°ΠΌ ΠΆΠΈΠ·Π½Ρ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΏΠΎΠ²ΡΡΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
Π§Π°ΡΡΡ 2: ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π΅ΡΡ Π² Microsoft SQL Server 2005. ΠΠ½ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΡΡΡΠΎΠΊ Π²Π½ΡΡΡΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Select. ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΊΡΠ°ΡΠΊΠΎ, ΡΠΎ βΠΎΠΊΠ½ΠΎβ β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΡΡΠΎΠΊ, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅. βΠΠΊΠ½ΠΎβ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π’Π°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π²Π΅ΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΎΠΊΠ½Π°.
ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ. ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π°Π±ΠΎΡΠ° Ρ ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ID. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΈΡΡΡΡΠ΅ΠΉ Π²ΡΠ±ΠΎΡΠΊΠ΅ Π² Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅.
SELECT column_name(s)
ΠΠ³ΡΠ΅Π³ΠΈΡΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ (ΡΡΠΎΠ»Π±Π΅Ρ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ)
OVER ([PARTITION BY ΡΡΠΎΠ»Π±Π΅Ρ Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ]
FROM table_name
[ORDER BY ΡΡΠΎΠ»Π±Π΅Ρ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ]
[ROWS ΠΈΠ»ΠΈ RANGE Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
Π³ΡΡΠΏΠΏΡ])
OVER PARTITION BY β ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π΄Π°Π²Π°ΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΡΠΌΠΎ Π² Π²ΡΠ±ΠΎΡΠΊΡ ΡΡΠΎΠ»Π±ΡΠΎΠ².
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅: Π² Π½Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΎΡΠ΄Π΅Π», ΡΠ΅ΠΏΠ΅ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 15 ΡΡΡΠΎΠΊ. ΠΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠΎΠ², ΠΈΡ Π·/ΠΏ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·/ΠΏ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ.
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΌΡ Π±Π΅ΡΠ΅ΠΌ ΠΈΠΌΡ, Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ β Π·Π°ΡΠΏΠ»Π°ΡΡ. ΠΠ°Π»ΡΡΠ΅ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ over(). ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°ΡΠΏΠ»Π°ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ βΠΎΠΊΠ½Π°β. Over() Ρ ΠΏΡΡΡΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΉ Π²ΡΠ±ΠΎΡΠΊΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π²Π΅Π·Π΄Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π·Π°ΡΠΏΠ»Π°ΡΠ° β 10 000. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅.
ΠΡΠ»ΠΈ ΡΠ±ΡΠ°ΡΡ ΠΈΠ· ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ.Π΅. ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ max (salary), ΡΠΎ Π·Π°ΠΏΡΠΎΡ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π±Ρ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΠΈΡΡ Π±Ρ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ, ΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° max (salary) Π±ΡΠ»ΠΎ Π±Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΡΠΈΡΠ»ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ, Ρ.Π΅. ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°. ΠΠΎΡ ΡΡΡ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎ Π²ΡΠ΅ΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π΄Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·/ΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»Π°:
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ ΡΠ°ΠΌΠΊΠΈ Π΄Π»Ρ βΠΎΠΊΠ½Π°β, ΡΠ°Π·Π±ΠΈΠ²Π°Ρ Π΅Π³ΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»Ρ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π½ΠΆΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ department. Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠΈ ΠΎΡΠ΄Π΅Π»Π°: dev, qa ΠΈ sales.
βΠΠΊΠ½ΠΎβ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»Π°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ΠΎ Π½Π°ΡΠ»ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°ΡΠΏΠ»Π°ΡΡ ΡΠ½Π°ΡΠ°Π»Π° Π΄Π»Ρ dev, Π·Π°ΡΠ΅ΠΌ Π΄Π»Ρ qa, ΠΏΠΎΡΠΎΠΌ Π΄Π»Ρ sales. ΠΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΏΠΎΡΠ»Π΅ over Π½Π΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ PARTITION BY, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π΄ΠΎΠΏ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
SQL Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄. ΠΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅ β ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π‘ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ βΡΠΏΡΠΎΡΡΠΈΡΡβ Π½Π°ΡΠΈ Π·Π°ΠΏΡΠΎΡΡ. ΠΠΎ Π² Π½ΠΈΡ ΡΠΊΡΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π°: Π΅ΡΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ROWS ΠΈΠ»ΠΈ RANGE), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ.
ΠΠ°Π΄Π΅ΡΡΡ, ΠΏΠΎΡΡ Π±ΡΠ» ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΡ ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠΎΠΉ.