From 20219dd4f7192c61492b7667dd3f15b05dbba044 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Sat, 23 Sep 2023 20:19:44 +0200 Subject: feat: Add post to version control --- content/posts/postgres-aggregates/merging-ctes.sql | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 content/posts/postgres-aggregates/merging-ctes.sql (limited to 'content/posts/postgres-aggregates/merging-ctes.sql') diff --git a/content/posts/postgres-aggregates/merging-ctes.sql b/content/posts/postgres-aggregates/merging-ctes.sql new file mode 100644 index 0000000..2061efd --- /dev/null +++ b/content/posts/postgres-aggregates/merging-ctes.sql @@ -0,0 +1,34 @@ +EXPLAIN ( + ANALYZE, + COSTS, + VERBOSE, + BUFFERS +) WITH product_reviews AS ( + SELECT + product_id, + COUNT(id) AS num_reviews + FROM + reviews + GROUP BY + product_id), + product_orders AS ( + SELECT + product_id, + COUNT(id) AS num_orders + FROM + orders + GROUP BY + product_id +) + SELECT + products.id, + products.name, + COALESCE(product_reviews.num_reviews, 0) AS num_reviews, + COALESCE(product_orders.num_orders, 0) AS num_orders +FROM + products + LEFT JOIN product_reviews ON products.id = product_reviews.product_id + LEFT JOIN product_orders ON products.id = product_orders.product_id; + +-- WHERE +-- products.id % 10 = 0 -- cgit v1.3