{"id":845,"date":"2026-06-01T10:00:36","date_gmt":"2026-06-01T13:00:36","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/"},"modified":"2026-06-01T10:00:36","modified_gmt":"2026-06-01T13:00:36","slug":"aula-11-ctes-with-queries-e-with-recursive-no-postgresql","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/","title":{"rendered":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL"},"content":{"rendered":"<p>Nesta aula, vamos explorar um recurso essencial no PostgreSQL conhecido como CTEs (Common Table Expressions). Vamos entender como as CTEs podem ser utilizadas para tornar suas consultas mais leg\u00edveis e eficientes, especialmente em cen\u00e1rios complexos. Entender o uso de CTEs \u00e9 crucial para qualquer profissional que pretenda se aprimorar no uso do PostgreSQL.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<ul>\n<li>Entender o que s\u00e3o CTEs e como elas funcionam no PostgreSQL<\/li>\n<li>Aprender a escrever consultas com <strong>WITH<\/strong> queries<\/li>\n<li>Explorar o uso de <strong>WITH RECURSIVE<\/strong> para criar consultas recursivas<\/li>\n<li>Examinar casos pr\u00e1ticos de uso de CTEs para resolver problemas complexos<\/li>\n<\/ul>\n<h3>Introdu\u00e7\u00e3o \u00e0s CTEs no PostgreSQL<\/h3>\n<p>As Common Table Expressions, ou CTEs, s\u00e3o uma forma poderosa de estruturar consultas SQL de forma mais clara e organizada. No PostgreSQL, as CTEs s\u00e3o definidas usando a cl\u00e1usula <strong>WITH<\/strong>. Elas permitem dividir uma consulta em partes menores e mais f\u00e1ceis de entender, especialmente \u00fatil quando lidamos com v\u00e1rias subconsultas.<\/p>\n<h3>Pr\u00e1tica com CTEs: Criando Consultas com <strong>WITH<\/strong><\/h3>\n<p>Para come\u00e7ar a utilizar CTEs, vamos explorar um exemplo simples onde usamos a cl\u00e1usula <strong>WITH<\/strong> para calcular o total de vendas de um produto espec\u00edfico em nosso sistema.<\/p>\n<pre><code>WITH sales_by_product AS (\n  SELECT product_id, SUM(amount) AS total_sales\n  FROM sales\n  GROUP BY product_id\n)\nSELECT products.name, sales_by_product.total_sales\nFROM sales_by_product\nJOIN products ON sales_by_product.product_id = products.id\nWHERE products.name = 'Produto X';<\/code><\/pre>\n<p>Neste exemplo, uma subconsulta \u00e9 definida no CTE <strong>sales_by_product<\/strong>, que calcula as vendas totais por produto. A consulta principal ent\u00e3o utiliza essa tabela tempor\u00e1ria para retornar o nome do produto e seu total de vendas. Esse m\u00e9todo torna o SQL mais f\u00e1cil de ler e mant\u00e9m a l\u00f3gica da subconsulta separada.<\/p>\n<h3>Explorando <strong>WITH RECURSIVE<\/strong> para consultas recursivas<\/h3>\n<p>O PostgreSQL tamb\u00e9m suporta CTEs recursivas atrav\u00e9s do uso de <strong>WITH RECURSIVE<\/strong>. Esse tipo de CTE \u00e9 \u00fatil para resolver problemas em que uma hierarquia ou rela\u00e7\u00e3o recursiva precisa ser navegada, como em estruturas de lista de tarefas ou organogramas.<\/p>\n<pre><code>WITH RECURSIVE employee_hierarchy AS (\n  SELECT employee_id, manager_id, name\n  FROM employees\n  WHERE manager_id IS NULL\n  UNION ALL\n  SELECT e.employee_id, e.manager_id, e.name\n  FROM employees e\n  JOIN employee_hierarchy eh ON eh.employee_id = e.manager_id\n)\nSELECT * FROM employee_hierarchy;<\/code><\/pre>\n<p>Neste exemplo, estamos construindo uma hierarquia de funcion\u00e1rios a partir de uma tabela chamada <strong>employees<\/strong>. Primeiramente, selecionamos todos os funcion\u00e1rios sem um gerente (o in\u00edcio da recurs\u00e3o). Em seguida, utilizamos uma <strong>UNION ALL<\/strong> para continuar a consulta unindo os funcion\u00e1rios ao seu gerente, criando assim a hierarquia.<\/p>\n<h3>Vantagens de usar CTEs em consultas avan\u00e7adas<\/h3>\n<p>As CTEs s\u00e3o extremamente \u00fateis em situa\u00e7\u00f5es onde voc\u00ea precisa de:<\/p>\n<ul>\n<li>Dividir consultas complexas em partes gerenci\u00e1veis e mais f\u00e1ceis de entender<\/li>\n<li>Evitar a repeti\u00e7\u00e3o de l\u00f3gica ao reusar resultados intermedi\u00e1rios em v\u00e1rias partes da consulta<\/li>\n<li>Substituir subconsultas nomeadas, melhorando a legibilidade<\/li>\n<\/ul>\n<p>Em nossos projetos na <strong>JRT Technology Solutions<\/strong>, utilizamos CTEs para otimizar a estrutura de consultas complexas e melhorar a performance de sistemas legados.<\/p>\n<h3>Resumo da Aula 11<\/h3>\n<p>Hoje, aprendemos a utilizar CTEs no PostgreSQL para estruturar melhor nossas consultas, principalmente em cen\u00e1rios complexos. Exploramos exemplos pr\u00e1ticos usando <strong>WITH<\/strong> e <strong>WITH RECURSIVE<\/strong> e discutimos as vantagens das CTEs em rela\u00e7\u00e3o a outras estruturas de consultas. Na pr\u00f3xima aula, vamos mergulhar na otimiza\u00e7\u00e3o de consultas no PostgreSQL, abordando \u00edndices e planos de execu\u00e7\u00e3o para atingir a m\u00e1xima efici\u00eancia.<\/p>\n<div style=\"margin:48px 0 32px;padding:32px 24px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:16px;text-align:center;\">\n<p style=\"margin:0 0 8px;font-size:17px;color:#111827;font-weight:700;\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 24px;font-size:15px;color:#1f2937;font-weight:400;\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de PostgreSQL para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1%21+Tenho+interesse+no+treinamento+de+PostgreSQL.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:600;padding:14px 28px;border-radius:100px;text-decoration:none;box-shadow:0 4px 12px rgba(37,211,102,0.4);letter-spacing:0.01em;\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\">\n      <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/>\n    <\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Aprenda sobre CTEs: descubra o poder das WITH queries e o potencial do WITH RECURSIVE no PostgreSQL. Melhore suas consultas agora!<\/p>\n","protected":false},"author":1,"featured_media":844,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"iawp_total_views":0,"footnotes":""},"categories":[75],"tags":[1478,1477,1474,1063,1475,1476],"class_list":["post-845","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-common-table-expressions","tag-consultas-recursivas-postgresql","tag-cte-postgresql","tag-otimizacao-de-consultas-sql","tag-with-queries-postgresql","tag-with-recursive"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Aprenda sobre CTEs: descubra o poder das WITH queries e o potencial do WITH RECURSIVE no PostgreSQL. Melhore suas consultas agora!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Thiago Paes Rodrigues\"\/>\n\t<meta name=\"google-site-verification\" content=\"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta property=\"og:description\" content=\"Aprenda sobre CTEs: descubra o poder das WITH queries e o potencial do WITH RECURSIVE no PostgreSQL. Melhore suas consultas agora!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"100\" \/>\n\t\t<meta property=\"og:image:height\" content=\"75\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-06-01T13:00:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-06-01T13:00:36+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61590814880509\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Aprenda sobre CTEs: descubra o poder das WITH queries e o potencial do WITH RECURSIVE no PostgreSQL. Melhore suas consultas agora!\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#blogposting\",\"name\":\"Aula 11: CTEs \\u2014 WITH queries e WITH RECURSIVE no PostgreSQL - BLOG - JRT Technology Solutions\",\"headline\":\"Aula 11: CTEs \\u2014 WITH queries e WITH RECURSIVE no PostgreSQL\",\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ai-image-1780318832478.jpg\",\"width\":1024,\"height\":576,\"caption\":\"Aula 11: CTEs \\u2014 WITH queries e WITH RECURSIVE no PostgreSQL\"},\"datePublished\":\"2026-06-01T10:00:36-03:00\",\"dateModified\":\"2026-06-01T10:00:36-03:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#webpage\"},\"articleSection\":\"DevOps, Common Table Expressions, consultas recursivas PostgreSQL, CTE PostgreSQL, otimiza\\u00e7\\u00e3o de consultas SQL, WITH queries PostgreSQL, WITH RECURSIVE\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#listItem\",\"name\":\"Aula 11: CTEs \\u2014 WITH queries e WITH RECURSIVE no PostgreSQL\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#listItem\",\"position\":3,\"name\":\"Aula 11: CTEs \\u2014 WITH queries e WITH RECURSIVE no PostgreSQL\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"telephone\":\"+552138277513\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-logo-mini.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#organizationLogo\",\"width\":100,\"height\":75},\"image\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61590814880509\",\"https:\\\/\\\/www.instagram.com\\\/jrtx.tech\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/\",\"name\":\"Thiago Paes Rodrigues\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cdfdf5f766c59d9c9acab959751c31c3442acd94d4b2927c51d2a0c31b50822?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Thiago Paes Rodrigues\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/\",\"name\":\"Aula 11: CTEs \\u2014 WITH queries e WITH RECURSIVE no PostgreSQL - BLOG - JRT Technology Solutions\",\"description\":\"Aprenda sobre CTEs: descubra o poder das WITH queries e o potencial do WITH RECURSIVE no PostgreSQL. Melhore suas consultas agora!\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ai-image-1780318832478.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#mainImage\",\"width\":1024,\"height\":576,\"caption\":\"Aula 11: CTEs \\u2014 WITH queries e WITH RECURSIVE no PostgreSQL\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/01\\\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\\\/#mainImage\"},\"datePublished\":\"2026-06-01T10:00:36-03:00\",\"dateModified\":\"2026-06-01T10:00:36-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"alternateName\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL - BLOG - JRT Technology Solutions","description":"Aprenda sobre CTEs: descubra o poder das WITH queries e o potencial do WITH RECURSIVE no PostgreSQL. Melhore suas consultas agora!","canonical_url":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#blogposting","name":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL - BLOG - JRT Technology Solutions","headline":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL","author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/06\/ai-image-1780318832478.jpg","width":1024,"height":576,"caption":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL"},"datePublished":"2026-06-01T10:00:36-03:00","dateModified":"2026-06-01T10:00:36-03:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#webpage"},"articleSection":"DevOps, Common Table Expressions, consultas recursivas PostgreSQL, CTE PostgreSQL, otimiza\u00e7\u00e3o de consultas SQL, WITH queries PostgreSQL, WITH RECURSIVE"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","position":1,"name":"Home","item":"https:\/\/jrtx.com.br\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","position":2,"name":"DevOps","item":"https:\/\/jrtx.com.br\/blog\/category\/devops\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#listItem","name":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#listItem","position":3,"name":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}}]},{"@type":"Organization","@id":"https:\/\/jrtx.com.br\/blog\/#organization","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","url":"https:\/\/jrtx.com.br\/blog\/","telephone":"+552138277513","logo":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#organizationLogo","width":100,"height":75},"image":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61590814880509","https:\/\/www.instagram.com\/jrtx.tech\/"]},{"@type":"Person","@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author","url":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/","name":"Thiago Paes Rodrigues","image":{"@type":"ImageObject","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cdfdf5f766c59d9c9acab959751c31c3442acd94d4b2927c51d2a0c31b50822?s=96&d=mm&r=g","width":96,"height":96,"caption":"Thiago Paes Rodrigues"}},{"@type":"WebPage","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#webpage","url":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/","name":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL - BLOG - JRT Technology Solutions","description":"Aprenda sobre CTEs: descubra o poder das WITH queries e o potencial do WITH RECURSIVE no PostgreSQL. Melhore suas consultas agora!","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"creator":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/06\/ai-image-1780318832478.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#mainImage","width":1024,"height":576,"caption":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL"},"primaryImageOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/#mainImage"},"datePublished":"2026-06-01T10:00:36-03:00","dateModified":"2026-06-01T10:00:36-03:00"},{"@type":"WebSite","@id":"https:\/\/jrtx.com.br\/blog\/#website","url":"https:\/\/jrtx.com.br\/blog\/","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","alternateName":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","og:type":"article","og:title":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL - BLOG - JRT Technology Solutions","og:description":"Aprenda sobre CTEs: descubra o poder das WITH queries e o potencial do WITH RECURSIVE no PostgreSQL. Melhore suas consultas agora!","og:url":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/","og:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:secure_url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:width":100,"og:image:height":75,"article:published_time":"2026-06-01T13:00:36+00:00","article:modified_time":"2026-06-01T13:00:36+00:00","article:publisher":"https:\/\/www.facebook.com\/profile.php?id=61590814880509","twitter:card":"summary_large_image","twitter:title":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL - BLOG - JRT Technology Solutions","twitter:description":"Aprenda sobre CTEs: descubra o poder das WITH queries e o potencial do WITH RECURSIVE no PostgreSQL. Melhore suas consultas agora!","twitter:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg"},"aioseo_meta_data":{"post_id":"845","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-06-22 19:10:49","updated":"2026-06-22 19:10:49","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\/category\/devops\/\" title=\"DevOps\">DevOps<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtx.com.br\/blog"},{"label":"DevOps","link":"https:\/\/jrtx.com.br\/blog\/category\/devops\/"},{"label":"Aula 11: CTEs \u2014 WITH queries e WITH RECURSIVE no PostgreSQL","link":"https:\/\/jrtx.com.br\/blog\/2026\/06\/01\/aula-11-ctes-with-queries-e-with-recursive-no-postgresql\/"}],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=845"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/845\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/844"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}