tgoop.com/sqlhub/2104
Create:
Last Update:
Last Update:
π§© SQL ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΏΡΠΈΡΠΌ
ΠΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΠΈ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Π³ΡΡΠΏΠΏΠ΅?
ΠΠΌΠ΅ΡΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ: Π½Π°ΠΉΡΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π·Π°ΠΊΠ°Π·.
WITH ranked AS (
SELECT
user_id,
order_id,
order_date,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_date DESC) AS rn
FROM orders
)
SELECT user_id, order_id, order_date
FROM ranked
WHERE rn = 1;
π ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
PARTITION BY user_id Π΄Π΅Π»ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ
ORDER BY order_date DESC ΡΠΎΡΡΠΈΡΡΠ΅Ρ Π·Π°ΠΊΠ°Π·Ρ ΠΎΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊ ΡΡΠ°ΡΠΎΠΌΡ
ROW_NUMBER() ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π½ΠΎΠΌΠ΅Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π³ΡΡΠΏΠΏΡ
WHERE rn = 1 Π±Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π·Π°ΠΊΠ°Π· Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
π‘ Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π»Π΅Π³ΠΊΠΎ Π°Π΄Π°ΠΏΡΠΈΡΡΠ΅ΡΡΡ: ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ/ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² Π³ΡΡΠΏΠΏΠ΅, ΡΠΎΠΏ-N Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ.
@sqlhub
BY Data Science. SQL hub
Share with your friend now:
tgoop.com/sqlhub/2104