View in Telegram
πŸ€– SQL Π² дСйствии: запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ Для Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° Π²Π°ΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ запросы, Π½ΠΎ ΠΈ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС конструкции: Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, подзапросы, ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ объСдинСния Ρ‚Π°Π±Π»ΠΈΡ†. Π­Ρ‚ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ инсайты, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ Π½Π° основС Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этом постС ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ SQL-запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пригодятся ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ. Они ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ быстрСС ΠΈ эффСктивнСС. 1. Анализ ΠΏΡ€ΠΎΠ΄Π°ΠΆ с использованиСм Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° sales с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ: sale_id, product_id, region, sale_date, amount. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ сумму ΠΏΡ€ΠΎΠ΄Π°ΠΆ ΠΈ срСдний Ρ‡Π΅ΠΊ ΠΏΠΎ Ρ€Π΅Π³ΠΈΠΎΠ½Π°ΠΌ:
SELECT 
    region, 
    SUM(amount) AS total_sales, 
    AVG(amount) AS avg_check
FROM sales
GROUP BY region
ORDER BY total_sales DESC;
Π­Ρ‚ΠΎΡ‚ запрос позволяСт быстро ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅Π³ΠΈΠΎΠ½ приносит большС всСго Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΠΈ. 2. ИспользованиС подзапросов для поиска Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹, ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΠΈΠΆΠ΅ срСднСго уровня ΠΏΠΎ всСм Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌ:
SELECT product_id, SUM(amount) AS total_sales
FROM sales
GROUP BY product_id
HAVING SUM(amount) < (
    SELECT AVG(total_sales)
    FROM (
        SELECT SUM(amount) AS total_sales
        FROM sales
        GROUP BY product_id
    ) AS subquery
);
Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ подзапрос для вычислСния срСднСго уровня ΠΏΡ€ΠΎΠ΄Π°ΠΆ ΠΏΠΎ всСм Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ Ρ‚Π΅ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π½ΠΈΠΆΠ΅ этого уровня. 3. ΠžΠΊΠΎΠ½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Π°Π½Π°Π»ΠΈΠ·Π° Ρ‚Ρ€Π΅Π½Π΄ΠΎΠ² ΠžΠΊΠΎΠ½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ. НапримСр, Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΈΠ²Π½ΡƒΡŽ Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΡƒ (Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΡ‚ΠΎΠ³) ΠΏΠΎ Π΄Π°Ρ‚Π°ΠΌ:
SELECT 
    sale_date,
    SUM(amount) OVER (ORDER BY sale_date) AS cumulative_sales
FROM sales;
Π’Π°ΠΊΠΎΠΉ запрос ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΡƒ роста Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΠΈ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄. 4. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠ² Π§Ρ‚ΠΎΠ±Ρ‹ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ мСсяца с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:
SELECT 
    region,
    DATE_TRUNC('month', sale_date) AS month,
    SUM(amount) AS monthly_sales,
    LAG(SUM(amount)) OVER (PARTITION BY region ORDER BY DATE_TRUNC('month', sale_date)) AS prev_month_sales,
    SUM(amount) - LAG(SUM(amount)) OVER (PARTITION BY region ORDER BY DATE_TRUNC('month', sale_date)) AS sales_diff
FROM sales
GROUP BY region, DATE_TRUNC('month', sale_date)
ORDER BY region, month;
Π­Ρ‚ΠΎΡ‚ запрос ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ΄Π°ΠΆ ΠΏΠΎ Ρ€Π΅Π³ΠΈΠΎΠ½Π°ΠΌ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ мСсяцами. 5. ОбъСдинСниС Ρ‚Π°Π±Π»ΠΈΡ† для Π°Π½Π°Π»ΠΈΠ·Π° Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹: products (с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°Ρ…) ΠΈ sales (с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ°Ρ…). Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² с ΠΈΡ… катСгориями ΠΈ ΠΎΠ±Ρ‰Π΅ΠΉ суммой ΠΏΡ€ΠΎΠ΄Π°ΠΆ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ JOIN:
SELECT 
    p.product_name,
    p.category,
    SUM(s.amount) AS total_sales
FROM products p
LEFT JOIN sales s ON p.product_id = s.product_id
GROUP BY p.product_name, p.category
ORDER BY total_sales DESC;
Π’Π°ΠΊΠΎΠΉ запрос ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† для Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ эти запросы Π½Π° своих Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΈΡ… эффСктивности! πŸš€
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily