WITH- এ পোস্টগ্রাইএসকিউএল ডকুমেন্টেশন নিম্নলিখিত উদাহরণটি দেখায়:
WITH regional_sales AS (
SELECT region, SUM(amount) AS total_sales
FROM orders
GROUP BY region
), top_regions AS (
SELECT region
FROM regional_sales
WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
)
SELECT region,
product,
SUM(quantity) AS product_units,
SUM(amount) AS product_sales
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product;
এটি আরও নোট করে:
WITH ক্যোয়ারগুলির একটি দরকারী সম্পত্তি হ'ল পিতামাতো ক্যোয়ারীর সম্পাদনকালে কেবল একবারে তাদের মূল্যায়ন করা হয়, এমনকি যদি তারা প্যারেন্ট ক্যোয়ারী বা ভাইয়ের সাথে কোয়েরি করে একাধিকবার উল্লেখ করা হয়।
আমি দেখতে পাচ্ছি যে WITHঅন্যান্য জিনিসগুলির জন্য যেমন পুনরাবৃত্তির মূল্যায়নের জন্য ব্যবহার করা যেতে পারে। তবে উপরের উদাহরণে WITHঅস্থায়ী টেবিলগুলি ব্যবহার এবং তৈরি করার মধ্যে কোনও গুরুত্বপূর্ণ পার্থক্য রয়েছে কি?
TEMPORARY TABLEসাথে ON COMMIT DROPএটি ব্যবহার করে থাকে তবে এটি কেবল ক্যোয়ারী সংশোধন এবং পুনরায় চালানোর বিষয়, তাই না? postgresql.org/docs/9.6/static/sql-createtable.html
SELECTমধ্যেWITHমাত্র নাম টাইপ এবং rerunning করা হয়। অস্থায়ী টেবিল সহ এটি নিতে হবেDROPএবংCREATE। অন্যদিকে আপনি যদি কোনও প্রশ্ন তৈরি করেন এবং আপনি প্রচুর স্থিতিশীল ডেটা পুনরায় ব্যবহার করতে চলেছেন - সূচী সহ অস্থায়ী টেবিল তৈরি করা সিটিইর বিরুদ্ধে অবশ্যই উপকারী।