برنامه نویسی

SQL 101 | فصل 8: استفاده از زیرمجموعه ها برای بهبود مدولار و محاسبات پویا

برای تقویت پرس و جوهای خود ، استفاده از زیرمجموعه ها در SQL را کاوش کنید. عملکرد آنها را در انتخاب ، از و کجا بندها برای محاسبات پویا ، نمایش داده شدگان مدولار و فیلتر داده های پویا درک کنید.

خوانایی خود را در:

https%3A%2F%2Fblog.ardenov.com%2Fposts%2Fdata science and machine learning%2Fsql 101%2Fchapter 8 using subqueries for improved modularity and dynamic calculations%2Fimages%2Fythumb

برای تقویت پرس و جوهای خود ، استفاده از زیرمجموعه ها در SQL را کاوش کنید. عملکرد آنها را در انتخاب ، از و کجا بندها برای محاسبات پویا ، نمایش داده شدگان مدولار و فیلتر داده های پویا درک کنید.

فاویکون
blog.ardenov.com


زیرمجموعه ها ، که اغلب به عنوان نمایش داده های داخلی یا نمایش داده های تو در تو نامیده می شوند ، نمایش داده شده هایی هستند که در یک پرس و جو SQL دیگر تعبیه شده اند. آنها به شما امکان می دهند با ارائه نتایج واسطه ای برای استفاده در پرس و جو اصلی (بیرونی) ، داده ها را به صورت پویا فیلتر ، تبدیل یا دستکاری کنید. زیرمجموعه ها می توانند در انتخاب ، از آنجا یا بندهای پرس و جو ظاهر شوند ، و هر محل ، هدف متفاوتی را ارائه می دهد. بیایید با استفاده از کتاب های ارائه شده ، نویسندگان و جداول فروش از فصل 3 بیشتر درک کنیم! زیرمجموعه های موجود در زیرگروه های بند انتخاب در بند انتخاب برای محاسبه یا واکشی مقادیر مشتق شده برای هر ردیف در مجموعه نتیجه اصلی پرس و جو استفاده می شود. برای بازیابی یک مقدار از جدول دیگر می توانید از زیرمجموعه ها استفاده کنید و آن را به عنوان یک ستون محاسبه شده نمایش دهید. برای یافتن درآمد کل فروش برای هر کتاب: B.Book_Title را انتخاب کنید ، (مبلغ (S.Price) را از فروش انتخاب کنید که S.Book_ID = B.Book_ID) به عنوان Total_Revenue از کتاب های B ؛ کل درآمد فروش برای هر کتاب کل درآمد فروش برای هر کتاب (انتخاب مبلغ (S.Price) از فروش S که در آن S.Book_ID = B.Book_ID) زیر QQUARY کل درآمد فروش برای هر کتاب را محاسبه می کند. این مقدار مشتق شده به عنوان یک ستون جدید (total_revenue) در مجموعه نتیجه گنجانده شده است. نتیجه به شما امکان می دهد هم Book_Title و هم Total_Revenue آن را ببینید. زیرمجموعه های موجود در بند از بند FROM در بند FROM اغلب به عنوان “جداول مشتق شده” یا “نماهای درون خطی” گفته می شود. آنها به شما امکان می دهند یک جدول موقت یا مجموعه ای از نتیجه ایجاد کنید که می تواند مانند یک جدول معمولی در پرس و جو اصلی درمان شود. برای رتبه بندی نویسندگان توسط کل فروش ، استفاده کنید: select نویسنده_name ، total_sales از (انتخاب کنید a.author_name ، جمع (s.price) به عنوان total_sales از نویسندگان یک کتاب پیوست b در a.author_id = b.author_id به فروش در B.Book_ID = بپیوندید. گروه S.Book_Id توسط A.Author_Name) به عنوان نویسنده_ sales توسط Total_Sales Desc ؛ رتبه نویسندگان توسط کل نویسندگان رتبه فروش را با کل فروش در بند FROM ، Subquery با جمع بندی ستون قیمت از جدول فروش ، کلیت های کل را برای هر نویسنده محاسبه می کند. این مجموعه نتیجه متوسط ​​(نویسنده_ sales) به عنوان یک جدول مشتق شده رفتار می شود. پرس و جو اصلی داده ها را از جدول مشتق شده بازیابی می کند ، و نویسندگان را بر اساس Total_sales آنها مرتب می کند. زیرمجموعه های موجود در زیرگروه های بند WHERE در بند WHERE برای فیلتر کردن ردیف ها در پرس و جو اصلی بر اساس نتایج پرس و جو دیگر استفاده می شود. بیایید کتابهایی پیدا کنیم که فروخته نشده باشند! book_title را از کتابهایی که در آن book_id در آن قرار ندارد انتخاب کنید (از فروش book_id را انتخاب کنید) ؛ کتابهایی که به فروش نرسیده اند کتابهایی که زیر مجموعه فروخته نشده اند (Select book_id را از فروش انتخاب کرده اند) تمام book_id را که فروخته شده است بازیابی می کند. پرس و جو اصلی سپس از book_id که در نتیجه فرعی ظاهر شده است فیلتر می کند و کتابهایی را که فروخته نشده است باز می گرداند. زیرمجموعه های همبسته یک زیرمجموعه همبسته یک بار برای هر ردیف پرس و جو بیرونی اجرا می شود. این ستون ها را از پرس و جو بیرونی ارجاع می دهد ، به این معنی که زیر کمری بستگی به هر سطر دارد که در پرس و جو بیرونی برای اجرای آن پردازش می شود. برای یافتن عناوین کتابهایی که صفحات بیشتری دارند از میانگین تعداد صفحات کتاب در ژانر خود: از کتاب های B که در آن Total_Pages> (AVG (TOTAL_PAGES) را انتخاب کنید ، از کتابهایی که Book_genre = B.Book_Genre) انتخاب کنید ، book_title را انتخاب کنید. کتابهایی که در کتابهای ژانر خود صفحات بیشتری دارند که در ژانر خود صفحات بیشتری دارند ، در اینجا ، تعداد متوسط ​​تعداد صفحات برای هر ژانر (B.book_genre) را محاسبه می کند ، و این محاسبه برای هر ردیف تکرار می شود جدول کتاب ها به دلیل اینکه زیرنویس به کتاب_گرای پرس و جو بیرونی بستگی دارد. 💡 این می تواند منجر به عملکرد عملکرد هنگام برخورد با مجموعه داده های بزرگ شود ، زیرا زیرمجموعه ها بارها برای هر ردیف پرس و جو بیرونی اجرا می شوند. اگر یک زیرمجموعه با هم ارتباط داشته باشد ، برای هر ردیف در پرس و جو بیرونی اجرا می شود. از طرف دیگر ، اگر یک زیرمجاز با همبستگی وجود داشته باشد ، فقط یک بار اجرا می شود و در بیشتر موارد کارآمدتر می شود. برای مدولار ، از زیرگروه ها استفاده کنید ، مشکلات پیچیده را در قسمت های قابل کنترل تجزیه کنید و درک آن آسان تر است. به خاطر داشته باشید که زیرمجموعه ها می توانند از نظر منابع بسیار زیاد باشند ، به خصوص اگر به درستی فهرست بندی نشده باشند یا در صورت استفاده از مجموعه داده های بزرگ. استفاده از فیلترها را در زیرمجموعه ها در نظر بگیرید یا آنها را با استفاده از پیوندهای جدول یا عبارات جدول مشترک (CTE) برای بهبود خوانایی و عملکرد کاملاً تغییر دهید. منابع https://en.wikibooks.org/wiki/structured_query_language/select:_subquery https://en.wikipedia.org/wiki/correlated_subquery


در ابتدا در https://blog.ardenov.com منتشر شده است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا