<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cloudflare changelogs | R2 SQL</title><description>Cloudflare changelogs for R2 SQL</description><link>https://cloudflaredoc.ubitools.com/changelog/</link><item><title>R2 SQL - 从仪表板使用 R2 SQL 查询 R2 Data Catalog 表</title><link>https://cloudflaredoc.ubitools.com/changelog/post/2026-07-08-query-r2-sql-from-dashboard/</link><guid isPermaLink="true">https://cloudflaredoc.ubitools.com/changelog/post/2026-07-08-query-r2-sql-from-dashboard/</guid><description>
&lt;p&gt;您现在可以直接从 Cloudflare 仪表板使用 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/&quot;&gt;R2 SQL&lt;/a&gt; 查询您的 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2/data-catalog/&quot;&gt;R2 Data Catalog&lt;/a&gt; 表，而无需安装 CLI 或接入客户端。这使得在同一个地方探索 &lt;a href=&quot;https://iceberg.apache.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Apache Iceberg&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; 数据、验证查询并检查结果变得非常容易。&lt;/p&gt;
&lt;img src=&quot;https://cloudflaredoc.ubitools.com/_astro/r2-sql-studio.DCmHJaqy_Z1PiDx0.webp&quot; alt=&quot;R2 SQL 查询编辑器&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;3080&quot; height=&quot;1696&quot;&gt;
&lt;p&gt;要开始使用，请转到 Cloudflare 仪表板中的 &lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/data-catalog/overview&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;R2 Data Catalog&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; 并选择 **Query data（查询数据）**以启动内置的 SQL 编辑器。从那里您可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;交互式编写和运行查询&lt;/strong&gt; — 直接在浏览器中对 R2 SQL 进行迭代，提供语法高亮和自动完成功能，而无需通过 Wrangler 或 REST API 重新运行命令。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;探索您的数据&lt;/strong&gt; — 在编辑器旁探索您的命名空间和表，这样您无需离开页面或使用其他工具即可发现哪些内容是可查询的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;了解结果和性能&lt;/strong&gt; — 查看包含每个查询统计信息的结果集，导出它们，并获取有用的 &lt;code&gt;EXPLAIN&lt;/code&gt; 输出以确切了解查询如何运行。&lt;/li&gt;
&lt;/ul&gt;
&lt;aside role=&quot;note&quot; aria-label=&quot;说明&quot; class=&quot;aside-card flex items-start gap-3 rounded-lg px-4 py-3 my-4&quot; style=&quot;--_c: var(--nb-info); --_t: var(--nb-info-muted);&quot; data-astro-cid-znle5jil&gt;&lt;span class=&quot;flex h-[1.375em] shrink-0 items-center&quot; aria-hidden=&quot;true&quot; data-astro-cid-znle5jil&gt;&lt;svg width=&quot;1em&quot; height=&quot;1em&quot; class=&quot;h-[1em] w-[1em]&quot; data-astro-cid-znle5jil=&quot;true&quot; data-icon=&quot;ph:info&quot;&gt;&lt;symbol id=&quot;ai:ph:info&quot; viewBox=&quot;0 0 256 256&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m16-40a8 8 0 0 1-8 8a16 16 0 0 1-16-16v-40a8 8 0 0 1 0-16a16 16 0 0 1 16 16v40a8 8 0 0 1 8 8m-32-92a12 12 0 1 1 12 12a12 12 0 0 1-12-12&quot;/&gt;&lt;/symbol&gt;&lt;use href=&quot;#ai:ph:info&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/span&gt;&lt;div class=&quot;flex min-w-0 flex-1 flex-col gap-0.5&quot; data-astro-cid-znle5jil&gt;&lt;p class=&quot;m-0 text-base leading-snug font-semibold&quot; data-astro-cid-znle5jil&gt;说明&lt;/p&gt;&lt;div class=&quot;aside-card-body text-sm leading-normal&quot; data-astro-cid-znle5jil&gt;&lt;p&gt;您的 R2 SQL 凭证是为您生成并存储的，可以在 R2 Data Catalog 设置页面中进行轮换。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate><product>R2 SQL</product><category>R2 SQL</category></item><item><title>R2 SQL - R2 SQL 现在支持窗口函数、DISTINCT 和集合操作</title><link>https://cloudflaredoc.ubitools.com/changelog/post/2026-06-21-window-functions-distinct-set-operations/</link><guid isPermaLink="true">https://cloudflaredoc.ubitools.com/changelog/post/2026-06-21-window-functions-distinct-set-operations/</guid><description>&lt;p&gt;R2 SQL 现在支持窗口函数、&lt;code&gt;SELECT DISTINCT&lt;/code&gt;、集合操作和更多聚合，使得编写分析查询变得更加容易，而无需在其他地方预处理数据。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/&quot;&gt;R2 SQL&lt;/a&gt; 是 Cloudflare 的无服务器分布式 SQL 引擎，用于查询存储在 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2/data-catalog/&quot;&gt;R2 Data Catalog&lt;/a&gt; 中的 &lt;a href=&quot;https://iceberg.apache.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Apache Iceberg&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; 表。&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;新功能&quot;&gt;新功能&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#新功能&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;窗口函数&lt;/strong&gt; — &lt;code&gt;ROW_NUMBER&lt;/code&gt;、&lt;code&gt;RANK&lt;/code&gt;、&lt;code&gt;DENSE_RANK&lt;/code&gt;、&lt;code&gt;PERCENT_RANK&lt;/code&gt;、&lt;code&gt;CUME_DIST&lt;/code&gt;、&lt;code&gt;NTILE&lt;/code&gt;、&lt;code&gt;LAG&lt;/code&gt;、&lt;code&gt;LEAD&lt;/code&gt;、&lt;code&gt;FIRST_VALUE&lt;/code&gt;、&lt;code&gt;LAST_VALUE&lt;/code&gt;、&lt;code&gt;NTH_VALUE&lt;/code&gt;，以及带有 &lt;code&gt;OVER (...)&lt;/code&gt; 子句的聚合，包括 &lt;code&gt;PARTITION BY&lt;/code&gt; 和显式窗口范围（frames）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QUALIFY&lt;/strong&gt; — 根据窗口函数结果过滤行&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DISTINCT&lt;/strong&gt; — &lt;code&gt;SELECT DISTINCT&lt;/code&gt;、&lt;code&gt;DISTINCT ON (...)&lt;/code&gt; 以及聚合上的 &lt;code&gt;DISTINCT&lt;/code&gt; 修饰符（例如 &lt;code&gt;COUNT(DISTINCT ...)&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;集合操作&lt;/strong&gt; — &lt;code&gt;UNION&lt;/code&gt;、&lt;code&gt;UNION ALL&lt;/code&gt;、&lt;code&gt;INTERSECT&lt;/code&gt; 和 &lt;code&gt;EXCEPT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分组扩展&lt;/strong&gt; — &lt;code&gt;GROUPING SETS&lt;/code&gt;、&lt;code&gt;ROLLUP&lt;/code&gt; 和 &lt;code&gt;CUBE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;精确聚合&lt;/strong&gt; — &lt;code&gt;MEDIAN&lt;/code&gt;、&lt;code&gt;PERCENTILE_CONT&lt;/code&gt;、&lt;code&gt;ARRAY_AGG&lt;/code&gt; 和 &lt;code&gt;STRING_AGG&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;示例&quot;&gt;示例&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#示例&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;使用窗口函数对行进行排名&quot;&gt;使用窗口函数对行进行排名&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#使用窗口函数对行进行排名&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; customer_id, region,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;       ROW_NUMBER&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;() &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;OVER&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; (&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;PARTITION&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; region &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;ORDER BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; total_amount &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;DESC&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;) &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;AS&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; rank_in_region&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;sales_data&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;使用-qualify-进行过滤&quot;&gt;使用 QUALIFY 进行过滤&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#使用-qualify-进行过滤&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; customer_id, region, total_amount&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;sales_data&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;QUALIFY &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;ROW_NUMBER&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;() &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;OVER&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; (&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;PARTITION&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; region &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;ORDER BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; total_amount &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;DESC&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;) &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;&amp;lt;=&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 3&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;使用集合操作组合表&quot;&gt;使用集合操作组合表&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#使用集合操作组合表&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; customer_id &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;sales_data&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;EXCEPT&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; customer_id &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;archived_sales&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;不支持具名 &lt;code&gt;WINDOW&lt;/code&gt; 子句 — 请在每个调用点内联 &lt;code&gt;OVER (...)&lt;/code&gt; 规范。有关完整语法参考，请参阅 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/sql-reference/&quot;&gt;SQL 参考&lt;/a&gt;。有关支持的功能和性能指南，请参阅&lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/reference/limitations-best-practices/&quot;&gt;限制与最佳实践&lt;/a&gt;。&lt;/p&gt;</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate><product>R2 SQL</product><category>R2 SQL</category></item><item><title>R2 SQL - R2 SQL 现在支持 UNION、INTERSECT、EXCEPT 和 SELECT DISTINCT</title><link>https://cloudflaredoc.ubitools.com/changelog/post/2026-06-05-union-intersect-except-select-distinct/</link><guid isPermaLink="true">https://cloudflaredoc.ubitools.com/changelog/post/2026-06-05-union-intersect-except-select-distinct/</guid><description>&lt;p&gt;&lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/&quot;&gt;R2 SQL&lt;/a&gt; 现在支持集合操作（&lt;code&gt;UNION&lt;/code&gt;、&lt;code&gt;INTERSECT&lt;/code&gt;、&lt;code&gt;EXCEPT&lt;/code&gt;）和 &lt;code&gt;SELECT DISTINCT&lt;/code&gt;，从而扩展了您可直接对 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2/data-catalog/&quot;&gt;R2 Data Catalog&lt;/a&gt; 中 &lt;a href=&quot;https://iceberg.apache.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Apache Iceberg&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; 表运行的分析查询范围。&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;集合操作&quot;&gt;集合操作&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#集合操作&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;组合多个 &lt;code&gt;SELECT&lt;/code&gt; 语句的结果：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;UNION&lt;/code&gt;&lt;/strong&gt; — 返回两个查询的所有行，并移除重复项。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;UNION ALL&lt;/code&gt;&lt;/strong&gt; — 返回两个查询的所有行，保留重复项。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;INTERSECT&lt;/code&gt;&lt;/strong&gt; — 仅返回在两个查询中都出现的行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;EXCEPT&lt;/code&gt;&lt;/strong&gt; — 返回存在于第一个查询中但不存在于第二个查询中的行。&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-21nrsd&quot;&gt;-- Find zones that had either firewall blocks OR high-risk requests&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;firewall_events&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; WHERE&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; action&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &apos;block&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;UNION&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;http_requests&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; WHERE&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; risk_score &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 0&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-21nrsd&quot;&gt;-- Find zones with both firewall blocks AND high traffic&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;firewall_events&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; WHERE&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; action&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &apos;block&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;INTERSECT&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;http_requests&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;GROUP BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;HAVING&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; COUNT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;) &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 10000&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-21nrsd&quot;&gt;-- Find enterprise zones that have not been compacted&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zones&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; WHERE&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; plan &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &apos;enterprise&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;EXCEPT&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;compaction_history&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;select-distinct&quot;&gt;SELECT DISTINCT&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#select-distinct&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;从查询结果中消除重复行：&lt;/p&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT DISTINCT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; region, department&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;sales_data&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;WHERE&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; total_amount &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 1000&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;ORDER BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; region, department&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;LIMIT&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 100&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;对于可以接受近似结果的大型数据集，&lt;code&gt;approx_distinct()&lt;/code&gt; 仍是计算唯一值数量的更快替代方法。&lt;/p&gt;
&lt;p&gt;有关完整语法参考，请参阅 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/sql-reference/&quot;&gt;SQL 参考&lt;/a&gt;。有关性能指南，请参阅&lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/reference/limitations-best-practices/&quot;&gt;限制与最佳实践&lt;/a&gt;。&lt;/p&gt;</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><product>R2 SQL</product><category>R2 SQL</category></item><item><title>R2 SQL - R2 SQL 定价公布</title><link>https://cloudflaredoc.ubitools.com/changelog/post/2026-05-11-r2-sql-pricing-announced/</link><guid isPermaLink="true">https://cloudflaredoc.ubitools.com/changelog/post/2026-05-11-r2-sql-pricing-announced/</guid><description>&lt;p&gt;&lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/&quot;&gt;R2 SQL&lt;/a&gt; 是一个无服务器分布式查询引擎，可对存储在 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2/data-catalog/&quot;&gt;R2 Data Catalog&lt;/a&gt; 中的 &lt;a href=&quot;https://iceberg.apache.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Apache Iceberg&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; 表运行 SQL。R2 SQL 现在已发布基于单一维度的定价：即执行查询所扫描的压缩数据量。R2 SQL 的价格为 2.50 美元/TB（0.0025 美元/GB），仅为 AWS Athena 成本的一半，且不到 Google BigQuery 按需付费价格的一半。&lt;/p&gt;
&lt;p&gt;计费尚未启用。在开始对 R2 SQL 使用收费之前，我们将至少提前 30 天通知。&lt;/p&gt;
&lt;p&gt;扫描的数据量是以从 R2 对象存储中读取的压缩字节数来衡量的。这与您在 R2 存储桶中看到的相符——如果一个 Parquet 文件在磁盘上是 100 MB，那么扫描该文件将按 100 MB 计费。每个查询的最小计费增量为 10 MB。&lt;/p&gt;
&lt;p&gt;免费计划每月包含 1 GB，付费计划每月包含 10 GB。标准的 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2/pricing/&quot;&gt;R2 存储和操作费用&lt;/a&gt; 以及 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2/data-catalog/platform/pricing/&quot;&gt;R2 Data Catalog 费用&lt;/a&gt; 单独计算。&lt;/p&gt;
&lt;p&gt;有关完整的定价详细信息和计费示例，请参阅 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/platform/pricing/&quot;&gt;R2 SQL 定价&lt;/a&gt;。&lt;/p&gt;</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate><product>R2 SQL</product><category>R2 SQL</category></item><item><title>R2 SQL - R2 SQL 现在支持 JOIN、子查询和多表查询</title><link>https://cloudflaredoc.ubitools.com/changelog/post/2026-05-14-joins-subqueries-multi-table-queries/</link><guid isPermaLink="true">https://cloudflaredoc.ubitools.com/changelog/post/2026-05-14-joins-subqueries-multi-table-queries/</guid><description>&lt;p&gt;&lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/&quot;&gt;R2 SQL&lt;/a&gt; 是 Cloudflare 的无服务器分布式 SQL 引擎，用于查询存储在 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2/data-catalog/&quot;&gt;R2 Data Catalog&lt;/a&gt; 中的 &lt;a href=&quot;https://iceberg.apache.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Apache Iceberg&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; 表。R2 SQL 直接在 Cloudflare 的全球网络上运行，无需管理任何基础设施，因此您可以分析 R2 中的数据，而无需将其导出到外部仓库。&lt;/p&gt;
&lt;p&gt;R2 SQL 现在支持在单个查询中连接多个 Iceberg 表。您可以使用 JOIN 组合表，使用子查询进行过滤，并定义多表 CTE 以构建复杂的分析查询。&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;新功能&quot;&gt;新功能&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#新功能&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JOIN&lt;/strong&gt; — &lt;code&gt;INNER JOIN&lt;/code&gt;、&lt;code&gt;LEFT JOIN&lt;/code&gt;、&lt;code&gt;RIGHT JOIN&lt;/code&gt;、&lt;code&gt;FULL OUTER JOIN&lt;/code&gt;、&lt;code&gt;CROSS JOIN&lt;/code&gt; 以及隐式连接（&lt;code&gt;FROM&lt;/code&gt; 中以逗号分隔，且条件在 &lt;code&gt;WHERE&lt;/code&gt; 中）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;子查询&lt;/strong&gt; — &lt;code&gt;IN&lt;/code&gt; / &lt;code&gt;NOT IN&lt;/code&gt;、&lt;code&gt;EXISTS&lt;/code&gt; / &lt;code&gt;NOT EXISTS&lt;/code&gt;、&lt;code&gt;SELECT&lt;/code&gt; / &lt;code&gt;WHERE&lt;/code&gt; / &lt;code&gt;HAVING&lt;/code&gt; 中的标量子查询，以及派生表（&lt;code&gt;FROM&lt;/code&gt; 中的子查询）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多表 CTE&lt;/strong&gt; — &lt;code&gt;WITH&lt;/code&gt; 子句可以引用不同的表并包含 JOIN&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自连接&lt;/strong&gt; — 使用不同的别名将表与自身连接&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多路连接&lt;/strong&gt; — 在单个查询中连接三个或更多表&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;示例&quot;&gt;示例&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#示例&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;带有聚合的双表-join&quot;&gt;带有聚合的双表 JOIN&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#带有聚合的双表-join&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; z&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;domain&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;z&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;plan&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;COUNT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;) &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;AS&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; request_count&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zones&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; z&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;INNER JOIN&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;http_requests&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; h &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;ON&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; z&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zone_id&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; h&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zone_id&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;WHERE&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; z&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;plan&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &apos;enterprise&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;GROUP BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; z&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;domain&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;z&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;plan&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;ORDER BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; request_count &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;DESC&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;LIMIT&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 20&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;exists-子查询&quot;&gt;&lt;code&gt;EXISTS&lt;/code&gt; 子查询&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#exists-子查询&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; z&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;domain&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;z&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;plan&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zones&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; z&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;WHERE&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; EXISTS&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 1&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;firewall_events&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; f&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    WHERE&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; f&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zone_id&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; z&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zone_id&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; AND&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; f&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;nb-shiki-mdbnqw&quot;&gt; &apos;block&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;ORDER BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; z&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;domain&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;LIMIT&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 20&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;带有-join-的多表-cte&quot;&gt;带有 JOIN 的多表 CTE&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#带有-join-的多表-cte&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;figure class=&quot;nb-code-figure&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot; data-nb-lang=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;WITH&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; top_zones &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;AS&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id, &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;COUNT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;) &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;AS&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; req_count&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;http_requests&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    GROUP BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    ORDER BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; req_count &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;DESC&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    LIMIT&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 50&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;zone_threats &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;AS&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id, &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;COUNT&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;) &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;AS&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; threat_count&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; my_namespace&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;firewall_events&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    WHERE&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; risk_score &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 0&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;5&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;    GROUP BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_id&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; tz&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zone_id&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;tz&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;req_count&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;COALESCE&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zt&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;threat_count&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;) &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;AS&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; threat_count&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; top_zones tz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;LEFT JOIN&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt; zone_threats zt &lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;ON&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; tz&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zone_id&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; =&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; zt&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;zone_id&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;ORDER BY&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; tz&lt;/span&gt;&lt;span class=&quot;nb-shiki-140thh&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt;req_count&lt;/span&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt; DESC&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;nb-shiki-1itgoe&quot;&gt;LIMIT&lt;/span&gt;&lt;span class=&quot;nb-shiki-dzsirb&quot;&gt; 20&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;有关完整语法参考，请参阅 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/sql-reference/&quot;&gt;SQL 参考&lt;/a&gt;。有关连接性能指南，请参阅&lt;a href=&quot;https://cloudflaredoc.ubitools.com/r2-sql/reference/limitations-best-practices/&quot;&gt;限制与最佳实践&lt;/a&gt;。&lt;/p&gt;</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate><product>R2 SQL</product><category>R2 SQL</category></item></channel></rss>