blob: 358d2d31beb54c687cfa0c30a6cbab8f8ccecdbd [file] [log] [blame]
<!doctype html><html lang=zh-Hans-CN dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-query-data/multi-dimensional-analytics" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.6.3"><title data-rh=true>聚合多维分析 - Apache Doris</title><meta data-rh=true name=viewport content="width=device-width,initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://doris.apache.org/zh-CN/docs/dev/query-data/multi-dimensional-analytics/><meta data-rh=true property=og:locale content=zh_Hans-CN><meta data-rh=true property=og:locale:alternate content=en_US><meta data-rh=true name=docusaurus_locale content=zh-CN><meta data-rh=true name=docsearch:language content=zh-CN><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="聚合多维分析 - Apache Doris"><meta data-rh=true name=description content="在数据库中,ROLLUP、CUBE 和 GROUPING SETS 是用于多维数据聚合的高级 SQL 语句。这些功能显著增强了 GROUP BY 子句的能力,使得用户可以在单一查询中获得多种层次的汇总结果,这在语义上等价于使用 UNION ALL 连接多个聚合语句。"><meta data-rh=true property=og:description content="在数据库中,ROLLUP、CUBE 和 GROUPING SETS 是用于多维数据聚合的高级 SQL 语句。这些功能显著增强了 GROUP BY 子句的能力,使得用户可以在单一查询中获得多种层次的汇总结果,这在语义上等价于使用 UNION ALL 连接多个聚合语句。"><link data-rh=true rel=icon href=/zh-CN/images/favicon.ico><link data-rh=true rel=canonical href=https://doris.apache.org/zh-CN/docs/dev/query-data/multi-dimensional-analytics/><link data-rh=true rel=alternate href=https://doris.apache.org/docs/dev/query-data/multi-dimensional-analytics/ hreflang=en-US><link data-rh=true rel=alternate href=https://doris.apache.org/zh-CN/docs/dev/query-data/multi-dimensional-analytics/ hreflang=zh-Hans-CN><link data-rh=true rel=alternate href=https://doris.apache.org/docs/dev/query-data/multi-dimensional-analytics/ hreflang=x-default><link rel=alternate type=application/rss+xml href=/zh-CN/blog/rss.xml title="Apache Doris RSS Feed"><link rel=alternate type=application/atom+xml href=/zh-CN/blog/atom.xml title="Apache Doris Atom Feed"><link rel=preconnect href=https://analytics.apache.org/><script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","43"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNode.insertBefore(t,p)}()</script><link rel=stylesheet href=/css/katex.min.css><script src=/js/custom-script.js></script><script async src=https://widget.kapa.ai/kapa-widget.bundle.js data-website-id=a5fb90df-217a-4097-95c0-80490220314b data-modal-title="Apache Doris AI" data-project-name="Apache Doris Website" data-project-logo=https://cdn.selectdb.com/static/doris_1_3c42247c63.png data-modal-image=https://cdn.selectdb.com/static/doris_logo_only_9617fa366a.png data-project-color=#444FD9 data-modal-disclaimer="This is a custom LLM with access to all [Doris documentation](https://doris.apache.org/docs/4.x/gettingStarted/what-is-apache-doris)." data-consent-required data-consent-screen-disclaimer="By clicking &amp;quot;I agree, let's chat&amp;quot;, you consent to the use of the AI assistant in accordance with kapa.ai's [Privacy Policy](https://www.kapa.ai/content/privacy-policy). This service uses reCAPTCHA, which requires your consent to Google's [Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms). By proceeding, you explicitly agree to both kapa.ai's and Google's privacy policies." data-bot-protection-mechanism=hcaptcha></script><link rel=stylesheet href=/zh-CN/assets/css/styles.246aa40f.css><script src=/zh-CN/assets/js/runtime~main.98a952f6.js defer></script><script src=/zh-CN/assets/js/main.0c2c123c.js defer></script><body class=navigation-with-keyboard><script>!function(){var t,e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t=null!==e?e:"light",document.documentElement.setAttribute("data-theme",t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id=__docusaurus><div role=region aria-label=跳到主要内容><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>跳到主要内容</a></div><nav aria-label=主导航 class="navbar navbar--fixed-top"><div class=navbar__inner><div class=navbar__items><div class=navbar-left><div class="navbar-logo-wrapper flex items-center"><div class="cursor-pointer docs"><svg width=127 height=30 fill=none viewBox="0 0 127 30"><g clip-path=url(#a)><path fill=#15A9CA d="m13.606 4.594-3.274-3.273A4.5 4.5 0 0 0 7.153 0a4.18 4.18 0 0 0-2.92 1.176 4.285 4.285 0 0 0-.06 6.107l5.94 5.94a.68.68 0 0 0 .933 0l2.556-2.557c.16-.192 2.834-3.245.003-6.072"/><path fill=#52CAA3 d="M18.97 9.823c-.624-.604-1.27-1.227-1.855-1.901v-.024q-.031.093-.047.189a6.73 6.73 0 0 1-2.003 3.747c-3.446 3.422-6.93 6.919-10.302 10.302l-.455.45a4.37 4.37 0 0 0-1.336 2.416 4.67 4.67 0 0 0 1.2 3.669 3.92 3.92 0 0 0 3.084 1.325c1.345.02 2-.157 2.98-1.11 3.92-3.837 7.84-7.706 10.807-10.646 1.4-1.392 1.72-3.697.729-5.25a18 18 0 0 0-2.803-3.167"/><path fill=#5268AD d="M-.004 7.774v14.457a.803.803 0 0 0 1.372.569l7.276-7.276a.74.74 0 0 0 0-1.042L1.368 7.206a.78.78 0 0 0-.56-.235.81.81 0 0 0-.812.803"/><path fill=#1D2434 d="M31.748 21.14V8.876h3.638c3.986 0 6.468 2.352 6.468 6.127s-2.481 6.139-6.468 6.139zm1.96-1.755h1.76c2.693 0 4.43-1.717 4.43-4.371s-1.737-4.371-4.43-4.371h-1.76zM50.612 21.33a6.326 6.326 0 1 1 0-12.652 6.326 6.326 0 0 1 0 12.652m0-10.835a4.512 4.512 0 0 0 0 9.016 4.555 4.555 0 0 0 4.45-4.532 4.473 4.473 0 0 0-4.45-4.484M75.056 8.875H73.04v12.254h2.015zM82.474 21.33a9.55 9.55 0 0 1-3.76-.804v-1.803a9.2 9.2 0 0 0 3.76.87c1.568 0 2.615-.717 2.615-1.78 0-1.195-1.278-1.67-2.63-2.171-2.121-.784-3.744-1.54-3.744-3.548 0-2.52 2.281-3.418 4.237-3.418 1.1 0 2.19.205 3.215.603v1.765a9.2 9.2 0 0 0-3.266-.651c-1.505 0-2.18.784-2.18 1.568 0 1.039 1.13 1.454 2.455 1.932 2.313.835 4.077 1.65 4.077 3.842-.008 2.125-1.968 3.595-4.779 3.595M66.026 16.174l.764-.33a3.63 3.63 0 0 0 2.2-3.327c0-2.211-1.592-3.638-4.054-3.638h-4.645V21.14h1.96V10.61h2.477a2.147 2.147 0 0 1 2.278 2.16 2.17 2.17 0 0 1-2.278 2.16h-1.042c-.459.067-.22.46-.22.46l3.956 5.75h2.214z"/></g><path fill=#484E5B d="M121.317 7.667h1.509v4.757h3.217v9.163h-1.463v-.747h-6.739v-1.403h6.739v-2.18h-6.175v-1.372h6.175v-2.043h-6.434v-1.418h3.171zm-3.781 8.477a34 34 0 0 0-.899-.808l-.336-.305v6.525h-1.418v-6.28q-.685 1.63-1.524 2.85l-.397-2.104q.489-.7.991-1.86.519-1.173.9-2.393h-1.647v-1.434h1.677V7.698h1.418v2.637h1.586v1.434h-1.586v1.433a69 69 0 0 1 2.089 1.707zm2.119-4.269a92 92 0 0 0-1.844-2.896l1.143-.824q.397.564.991 1.464t.93 1.463zm6.724-2.927a5 5 0 0 1-.198.32q-1.145 1.936-1.662 2.684l-1.235-.778q.442-.61.976-1.479.548-.87.899-1.494zM109.959 21.51a29 29 0 0 1-3.384-1.463 15.4 15.4 0 0 1-2.592-1.677 16.3 16.3 0 0 1-2.561 1.693 31 31 0 0 1-3.4 1.555l-.778-1.586a29 29 0 0 0 3.187-1.311q1.371-.67 2.378-1.448a12 12 0 0 1-1.845-2.607q-.762-1.464-1.296-3.37h-2.302V9.833h6.098a61 61 0 0 0-.686-2.028l1.662-.305q.213.488.61 1.677l.229.656h5.32v1.463h-2.378q-.488 1.905-1.235 3.37a11 11 0 0 1-1.829 2.607q2.043 1.539 5.595 2.622zm-8.644-10.214a13.3 13.3 0 0 0 1.052 2.76 9.5 9.5 0 0 0 1.601 2.18 8.8 8.8 0 0 0 1.539-2.165q.61-1.205 1.022-2.775z"/><defs><clipPath id=a><path fill=#fff d="M0 0h87.244v30H0z"/></clipPath></defs></svg></div></div><div class=undefined><div class="docs-search navbarSearchContainer_dCNk"><div class="navbar__search searchBarContainer_PzyC" dir=ltr><input placeholder=搜索 aria-label=Search class=navbar__search-input value=""><div class="loadingRing__K5d searchBarLoadingRing_e2f0"><div></div><div></div><div></div><div></div></div></div></div></div></div></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link><svg class=icon-language width=16 height=16 viewBox="0 0 16 16" fill=none><path d="M7.75756 14.3L10.5816 6.91667H11.8759L14.7 14.3H13.4057L12.7501 12.4167H9.74113L9.06873 14.3H7.75756ZM10.1109 11.35H12.3467L11.254 8.3H11.2036L10.1109 11.35ZM2.84908 12.45L1.97498 11.5833L5.11841 8.48333C4.72618 8.05 4.38439 7.60267 4.09302 7.14133C3.80165 6.68044 3.54389 6.19444 3.31976 5.68333H4.61412C4.80463 6.06111 5.00635 6.39711 5.21927 6.69133C5.43219 6.986 5.68434 7.29444 5.97571 7.61667C6.43519 7.12778 6.81621 6.62511 7.11879 6.10867C7.42137 5.59178 7.67352 5.03889 7.87523 4.45H1V3.23333H5.33694V2H6.58087V3.23333H10.9178V4.45H9.11916C8.89503 5.18333 8.59805 5.89155 8.22824 6.57467C7.85842 7.25822 7.39895 7.90555 6.84983 8.51667L8.3459 10.0167L7.87523 11.2833L5.95891 9.38333L2.84908 12.45Z" fill=#4C576C /></svg></a><ul class=dropdown__menu><li><a href=/docs/dev/query-data/multi-dimensional-analytics/ rel="noopener noreferrer" class=dropdown__link lang=en-US>English</a><li><a href=/zh-CN/docs/dev/query-data/multi-dimensional-analytics/ rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang=zh-Hans-CN>中文</a></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a aria-current=page class="navbar__link active" aria-haspopup=true aria-expanded=false role=button href=/zh-CN/docs/dev/query-data/multi-dimensional-analytics/><span class=text-sm>Versions: <!-- -->dev</span></a><ul class=dropdown__menu><li><a class=dropdown__link href=/zh-CN/docs/4.x/query-data/multi-dimensional-analytics/>4.x</a><li><a class=dropdown__link href=/zh-CN/docs/3.x/query-data/multi-dimensional-analytics/>3.x</a><li><a class=dropdown__link href=/zh-CN/docs/2.1/query-data/multi-dimensional-analytics/>2.1</a><li><a aria-current=page class="dropdown__link dropdown__link--active" href=/zh-CN/docs/dev/query-data/multi-dimensional-analytics/>dev</a><li><a class=dropdown__link href=/zh-CN/archive-docs/>归档文档</a></ul></div><button aria-label=切换导航栏 aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class="header-right-button-primary navbar-download-desktop" href=/zh-CN/download/>Download</a></div></div><div class=navbar__bottom><div class=docs-nav-version-locale><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link type=localeDropdown><svg class=icon-language width=16 height=16 viewBox="0 0 16 16" fill=none><path d="M7.75756 14.3L10.5816 6.91667H11.8759L14.7 14.3H13.4057L12.7501 12.4167H9.74113L9.06873 14.3H7.75756ZM10.1109 11.35H12.3467L11.254 8.3H11.2036L10.1109 11.35ZM2.84908 12.45L1.97498 11.5833L5.11841 8.48333C4.72618 8.05 4.38439 7.60267 4.09302 7.14133C3.80165 6.68044 3.54389 6.19444 3.31976 5.68333H4.61412C4.80463 6.06111 5.00635 6.39711 5.21927 6.69133C5.43219 6.986 5.68434 7.29444 5.97571 7.61667C6.43519 7.12778 6.81621 6.62511 7.11879 6.10867C7.42137 5.59178 7.67352 5.03889 7.87523 4.45H1V3.23333H5.33694V2H6.58087V3.23333H10.9178V4.45H9.11916C8.89503 5.18333 8.59805 5.89155 8.22824 6.57467C7.85842 7.25822 7.39895 7.90555 6.84983 8.51667L8.3459 10.0167L7.87523 11.2833L5.95891 9.38333L2.84908 12.45Z" fill=#4C576C /></svg></a><ul class=dropdown__menu><li><a href=/docs/dev/query-data/multi-dimensional-analytics/ rel="noopener noreferrer" class=dropdown__link lang=en-US>English</a><li><a href=/zh-CN/docs/dev/query-data/multi-dimensional-analytics/ rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang=zh-Hans-CN>中文</a></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a aria-current=page class="navbar__link active" aria-haspopup=true aria-expanded=false role=button type=docsVersionDropdown href=/zh-CN/docs/dev/query-data/multi-dimensional-analytics/><span class=text-sm>Versions: <!-- -->dev</span></a><ul class=dropdown__menu><li><a class=dropdown__link href=/zh-CN/docs/4.x/query-data/multi-dimensional-analytics/>4.x</a><li><a class=dropdown__link href=/zh-CN/docs/3.x/query-data/multi-dimensional-analytics/>3.x</a><li><a class=dropdown__link href=/zh-CN/docs/2.1/query-data/multi-dimensional-analytics/>2.1</a><li><a aria-current=page class="dropdown__link dropdown__link--active" href=/zh-CN/docs/dev/query-data/multi-dimensional-analytics/>dev</a><li><a class=dropdown__link href=/zh-CN/archive-docs/>归档文档</a></ul></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="main-wrapper mainWrapper_eExm"><div class=docsWrapper_hBAB><button aria-label=回到顶部 class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class=sidebar_mhZE><nav aria-label=文档侧边栏 class="menu thin-scrollbar menu_Y1UP menuWithAnnouncementBar_fPny"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/zh-CN/docs/dev/gettingStarted/what-is-apache-doris/>快速开始</a></div><ul style=display:block;overflow:visible;height:auto class="menu__list menu__list_level_2 community_level_2"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=3 tabindex=0 href=/zh-CN/docs/dev/gettingStarted/what-is-apache-doris/>Apache Doris 简介</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=3 tabindex=0 href=/zh-CN/docs/dev/gettingStarted/quick-start/>快速体验 Apache Doris</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/gettingStarted/alternatives/alternative-to-clickhouse/>技术对比</a></div></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role=button aria-expanded=true href=/zh-CN/docs/dev/install/preparation/env-checking/>使用指南</a></div><ul style=display:block;overflow:visible;height:auto class="menu__list menu__list_level_2 community_level_2"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/install/preparation/env-checking/>安装部署</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/db-connect/database-connect/>数据库连接</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/table-design/overview/>数据表设计</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/data-operate/import/load-manual/>数据导入</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/data-operate/update/update-overview/>数据更新与删除</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/data-operate/export/export-overview/>数据导出</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role=button aria-expanded=true tabindex=0 href=/zh-CN/docs/dev/query-data/mysql-compatibility/>数据查询</a></div><ul style=display:block;overflow:visible;height:auto class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/query-data/mysql-compatibility/>MySQL 兼容性</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/query-data/join/>连接(JOIN)</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/query-data/subquery/>子查询</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current=page length=9 tabindex=0 href=/zh-CN/docs/dev/query-data/multi-dimensional-analytics/>聚合多维分析</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/query-data/window-function/>分析函数(窗口函数)</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/query-data/cte/>公用表表达式(CTE)</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/query-data/udf/alias-function/>自定义函数</a></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/query-data/complex-type/>复杂类型查询</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/query-data/lateral-view/>列转行 (Lateral View)</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/query-acceleration/performance-tuning-overview/tuning-overview/>查询加速</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/ai/ai-overview/>AI</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/lakehouse/lakehouse-overview/>湖仓一体</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/observability/overview/>可观测性</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/compute-storage-decoupled/overview/>存算分离</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/admin-manual/auth/security-overview/>安全合规</a></div></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/zh-CN/docs/dev/benchmark/ssb/>性能测试</a></div><ul style=display:block;overflow:visible;height:auto class="menu__list menu__list_level_2 community_level_2"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=3 tabindex=0 href=/zh-CN/docs/dev/benchmark/ssb/>Star Schema Benchmark</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=3 tabindex=0 href=/zh-CN/docs/dev/benchmark/tpch/>TPC-H Benchmark</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=3 tabindex=0 href=/zh-CN/docs/dev/benchmark/tpcds/>TPC-DS Benchmark</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/zh-CN/docs/dev/admin-manual/cluster-management/upgrade/>管理指南</a></div><ul style=display:block;overflow:visible;height:auto class="menu__list menu__list_level_2 community_level_2"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/admin-manual/cluster-management/upgrade/>集群管理</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/admin-manual/workload-management/workload-management-summary/>负载管理</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/admin-manual/data-admin/overview/>容灾管理</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/admin-manual/log-management/fe-log/>日志管理</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/admin-manual/maint-monitor/metrics/>运维监控</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/admin-manual/config/config-dir/>配置管理</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/admin-manual/system-tables/overview/>系统表</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/admin-manual/trouble-shooting/memory-management/overview/>故障诊断处理</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/admin-manual/open-api/overview/>OPEN API</a></div></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/zh-CN/docs/dev/ecosystem/spark-doris-connector/>生态扩展</a></div><ul style=display:block;overflow:visible;height:auto class="menu__list menu__list_level_2 community_level_2"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/ecosystem/spark-doris-connector/>Spark Doris Connector</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/ecosystem/flink-doris-connector/>Flink Doris Connector</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/ecosystem/doris-kafka-connector/>Doris Kafka Connector</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/ecosystem/doris-operator/doris-operator-overview/>Doris Operator</a></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=9 tabindex=0 href=/zh-CN/docs/dev/ecosystem/doris-streamloader/>Doris Streamloader</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/ecosystem/bi/apache-superset/>BI</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/ecosystem/bi/clouddm/>SQL Clients</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/ecosystem/observability/logstash/>可观测性</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/ecosystem/cloudcanal/>More</a></div></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/zh-CN/docs/dev/faq/install-faq/>常见问题</a></div><ul style=display:block;overflow:visible;height:auto class="menu__list menu__list_level_2 community_level_2"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=7 tabindex=0 href=/zh-CN/docs/dev/faq/install-faq/>常见运维问题</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=7 tabindex=0 href=/zh-CN/docs/dev/faq/data-faq/>数据操作问题</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=7 tabindex=0 href=/zh-CN/docs/dev/faq/sql-faq/>常见查询问题</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=7 tabindex=0 href=/zh-CN/docs/dev/faq/lakehouse-faq/>常见数据湖问题</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=7 tabindex=0 href=/zh-CN/docs/dev/faq/bi-faq/>常见 BI 问题</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=7 tabindex=0 href=/zh-CN/docs/dev/faq/correctness-faq/>数据正确性问题</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=7 tabindex=0 href=/zh-CN/docs/dev/faq/load-faq/>常见导入问题</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/zh-CN/docs/dev/sql-manual/basic-element/sql-data-types/data-type-overview/>SQL 手册</a></div><ul style=display:block;overflow:visible;height:auto class="menu__list menu__list_level_2 community_level_2"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/sql-manual/basic-element/sql-data-types/data-type-overview/>基础元素</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/sql-manual/sql-functions/ai-functions/distance-functions/cosine-distance/>SQL 函数</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/sql-manual/sql-statements/data-query/SELECT/>SQL 语句</a></div></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/zh-CN/docs/dev/releasenotes/all-release/>版本发布</a></div><ul style=display:block;overflow:visible;height:auto class="menu__list menu__list_level_2 community_level_2"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link length=8 tabindex=0 href=/zh-CN/docs/dev/releasenotes/all-release/>最新发布</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/releasenotes/v4.0/release-4.0.2/>v4.0</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/releasenotes/v3.1/release-3.1.4/>v3.1</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/releasenotes/v3.0/release-3.0.8/>v3.0</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/releasenotes/v2.1/release-2.1.11/>v2.1</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/releasenotes/v2.0/release-2.0.15/>v2.0</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/releasenotes/v1.2/release-1.2.8/>v1.2</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/zh-CN/docs/dev/releasenotes/v1.1/release-1.1.5/>v1.1</a></div></ul></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_z5aJ"><div class="theme-doc-version-banner alert alert--warning margin-bottom--md" role=alert><div>此处为 Apache Doris <b>尚未发布</b>的版本文档,不建议作为使用参考。</div><div class=margin-top--md>使用参考请跳转至 <b><a href=/zh-CN/docs/4.x/query-data/multi-dimensional-analytics/>2.1</a></b><b><a href=/zh-CN/docs/3.x/gettingStarted/what-is-apache-doris/>3.x</a></b> 正式版本文档进行查阅。</div></div><div class=docItemContainer_c0TR><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=页面路径><ul class=breadcrumbs itemscope itemtype=https://schema.org/BreadcrumbList><li class=breadcrumbs__item><a aria-label=主页面 class=breadcrumbs__link href=/zh-CN/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><span class=breadcrumbs__link>使用指南</span><meta itemprop=position content=1><li class=breadcrumbs__item><span class=breadcrumbs__link>数据查询</span><meta itemprop=position content=2><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link itemprop=name>聚合多维分析</span><meta itemprop=position content=3></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_bxCs"><button type=button class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><header><h1>聚合多维分析</h1></header><p>在数据库中,ROLLUP、CUBE 和 GROUPING SETS 是用于多维数据聚合的高级 SQL 语句。这些功能显著增强了 GROUP BY 子句的能力,使得用户可以在单一查询中获得多种层次的汇总结果,这在语义上等价于使用 UNION ALL 连接多个聚合语句。</p>
<ul>
<li>
<p><strong>ROLLUP</strong>:ROLLUP 是一种用于生成层次化汇总的操作。它按照指定的列顺序进行汇总,从最细粒度的数据逐步汇总到最高层次。例如,在销售数据中,可以使用 ROLLUP 按地区、时间进行汇总,得到每个地区每个月的销售额、每个地区的总销售额以及整体总销售额。ROLLUP 适用于需要逐级汇总的场景。</p>
</li>
<li>
<p><strong>CUBE</strong>:CUBE 是一种更为强大的聚合操作,它生成所有可能的汇总组合。与 ROLLUP 不同,CUBE 会计算所有维度的子集。例如,对于按产品和地区进行统计的销售数据,CUBE 会计算每个产品在每个地区的销售额、每个产品的总销售额、每个地区的总销售额以及整体总销售额。CUBE 适用于需要全面多维分析的场景,如业务分析和市场调查。</p>
</li>
<li>
<p><strong>GROUPING SETS</strong>:GROUPING SETS 提供了对特定分组集进行聚合的灵活性。它允许用户指定一组列的组合进行独立聚合,而不是像 ROLLUP 和 CUBE 那样生成所有可能的组合。例如,可以定义按地区和时间的特定组合进行汇总,而不需要每个维度的所有组合。GROUPING SETS 适用于需要定制化汇总的场景,提供了灵活的聚合控制。</p>
</li>
</ul>
<p>ROLLUP、CUBE 和 GROUPING SETS 提供了强大的多维数据汇总功能,适用于各种数据分析和报告需求,使得复杂的聚合计算变得更加简便和高效。接下来将详细介绍以上功能使用场景、语法与示例。</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id=rollup>ROLLUP<a href=#rollup class=hash-link aria-label=ROLLUP的直接链接 title=ROLLUP的直接链接></a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id=使用场景>使用场景<a href=#使用场景 class=hash-link aria-label=使用场景的直接链接 title=使用场景的直接链接></a></h3>
<p>ROLLUP 对于按照时间、地理、类别等层次维度进行汇总时非常有用。例如,查询可以指定 <code>ROLLUP(year, month, day)</code> 或者 <code>(country, Province, city)</code></p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id=语法和示例>语法和示例<a href=#语法和示例 class=hash-link aria-label=语法和示例的直接链接 title=语法和示例的直接链接></a></h3>
<p>ROLLUP 的语法如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> ROLLUP</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">grouping_column_reference_list</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>下面这个查询对销售额按照年月进行汇总分析:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">MONTH</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ss_net_paid</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">AS</span><span class="token plain"> total_sum </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> store_sales</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> date_dim d1 </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">WHERE</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">d_date_sk </span><span class="token operator">=</span><span class="token plain"> ss_sold_date_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2001</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2002</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">MONTH</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> ROLLUP</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">MONTH</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">MONTH</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>这个查询按照时间进行汇总,分别计算了每年的销售额小计、每年中每月的销售额小计,以及总体的销售额总计。查询结果如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+---------------+-------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">MONTH</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> total_sum </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+---------------+-------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">54262669.17</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2001</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">26640320.46</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2001</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">9982165.83</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2001</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">8454915.34</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2001</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">3</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">8203239.29</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2002</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">27622348.71</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2002</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">11260654.35</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2002</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">7722750.61</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2002</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">3</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">8638943.75</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+---------------+-------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token number">9</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">rows</span><span class="token plain"> </span><span class="token operator">in</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">0.08</span><span class="token plain"> sec</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id=cube>CUBE<a href=#cube class=hash-link aria-label=CUBE的直接链接 title=CUBE的直接链接></a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id=使用场景-1>使用场景<a href=#使用场景-1 class=hash-link aria-label=使用场景的直接链接 title=使用场景的直接链接></a></h3>
<p>CUBE 最适合用于查询涉及多个独立维度的列,而不是表示单个维度的不同级别的列。例如,常见的使用场景是对月份、地区和产品的所有组合进行汇总。这是三个独立的维度,分析所有可能的小计组合是很常见的。相比之下,显示年、月、日所有可能组合的交叉制表将包含几个不必要的值,因为时间维度中存在自然的层次结构。在大多数分析中,诸如按月日计算的利润之类的小计都是不必要的。相对较少的用户需要询问“全年每月 16 日的总销售额是多少”。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id=语法和示例-1>语法和示例<a href=#语法和示例-1 class=hash-link aria-label=语法和示例的直接链接 title=语法和示例的直接链接></a></h3>
<p>CUBE 的语法如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> CUBE</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">grouping_column_reference_list</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>使用示例:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ss_net_paid</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">AS</span><span class="token plain"> total_sum </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> store_sales</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> date_dim d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> item</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> customer_address ca </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">WHERE</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">d_date_sk </span><span class="token operator">=</span><span class="token plain"> ss_sold_date_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> i_item_sk </span><span class="token operator">=</span><span class="token plain"> ss_item_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> ss_addr_sk </span><span class="token operator">=</span><span class="token plain"> ca_address_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> i_category </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"Books"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Electronics"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1998</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">1999</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> ca_state </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"LA"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"AK"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> CUBE</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>查询结果如下,它分别计算了:</p>
<ul>
<li>
<p>总计的销售额;</p>
</li>
<li>
<p>各年度的销售额小计、各类别下商品的销售额小计、各州的销售额小计;</p>
</li>
<li>
<p>每年每类产品的销售额小计、每个州每个产品的销售额小计、每年每个州的销售额小计和每年每个州各类别的产品的销售额小计。</p>
</li>
</ul>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+-------------+----------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> i_category </span><span class="token operator">|</span><span class="token plain"> ca_state </span><span class="token operator">|</span><span class="token plain"> total_sum </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+-------------+----------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">8690374.60</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2675198.33</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">6015176.27</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4238177.69</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1310791.36</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2927386.33</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4452196.91</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1364406.97</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">3087789.94</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4369656.14</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1402539.19</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2967116.95</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2213703.82</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">719911.29</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1493792.53</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2155952.32</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">682627.90</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1473324.42</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4320718.46</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1272659.14</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">3048059.32</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2024473.87</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">590880.07</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1433593.80</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2296244.59</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">681779.07</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1614465.52</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+-------------+----------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token number">27</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">rows</span><span class="token plain"> </span><span class="token operator">in</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">0.21</span><span class="token plain"> sec</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id=grouping-function>GROUPING FUNCTION<a href=#grouping-function class=hash-link aria-label="GROUPING FUNCTION的直接链接" title="GROUPING FUNCTION的直接链接"></a></h2>
<p>本节将介绍如何解决使用 ROLLUP 和 CUBE 时出现的两个挑战:</p>
<ol>
<li>
<p>如何以编程方式识别出哪些结果集行代表小计,以及如何准确找到给定小计对应的聚合层级。由于在计算(如总计百分比)时经常需要使用小计,因此,我们需要一种简便的方法来识别这些小计行。</p>
</li>
<li>
<p>当查询结果同时包含实际存储的 NULL 值和由 ROLLUP 或 CUBE 操作生成的“NULL”值时,会引发另一个问题:如何区分这两种 NULL 值?</p>
</li>
</ol>
<p>通过 GROUPING、GROUPING_ID、GROUPING SETS 能够有效解决上述的两个挑战。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id=grouping>GROUPING<a href=#grouping class=hash-link aria-label=GROUPING的直接链接 title=GROUPING的直接链接></a></h3>
<p><strong>1. 原理介绍</strong></p>
<p>GROUPING 使用单个列作为参数,在遇到由 ROLLUP 或 CUBE 操作创建的 NULL 值时返回 1,即 NULL 表示该行是小计,则 GROUPING 返回 1。任何其他类型的值(包括表数据中本身的 NULL 值)都返回 0。</p>
<p>示例如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">select</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">month</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">sum</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ss_net_paid</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> total_sum</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">month</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> store_sales</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> date_dim d1 </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">where</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">d_date_sk </span><span class="token operator">=</span><span class="token plain"> ss_sold_date_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">in</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2001</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2002</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">month</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">in</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">group</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">by</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> rollup</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">month</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">order</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">by</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">month</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<ul>
<li>
<p>(year(d_date), month(d_date)) 组的 GROUPING 函数结果为 (0,0) 为按照年月聚合的结果</p>
</li>
<li>
<p>(year(d_date)) 组的 GROUPING 函数结果为 (0,1),为按年聚合的结果;</p>
</li>
<li>
<p>() 组的 GROUPING 函数结果为 (1,1),为总计结果。</p>
</li>
</ul>
<p>查询结果如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+---------------+-------------+------------------------+-------------------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">month</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> total_sum </span><span class="token operator">|</span><span class="token plain"> Grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">month</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+---------------+-------------+------------------------+-------------------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">54262669.17</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2001</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">26640320.46</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2001</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">9982165.83</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2001</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">8454915.34</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2001</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">3</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">8203239.29</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2002</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">27622348.71</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2002</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">11260654.35</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2002</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">7722750.61</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2002</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">3</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">8638943.75</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+---------------+-------------+------------------------+-------------------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token number">9</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">rows</span><span class="token plain"> </span><span class="token operator">in</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">0.06</span><span class="token plain"> sec</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p><strong>2. 使用场景、语法与示例</strong></p>
<p>GROUPING 函数可以用来过滤结果。示例如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">select</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">sum</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ss_net_paid</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> total_sum</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> store_sales</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> date_dim d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> item</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> customer_address ca </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">where</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">d_date_sk </span><span class="token operator">=</span><span class="token plain"> ss_sold_date_sk</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> i_item_sk </span><span class="token operator">=</span><span class="token plain"> ss_item_sk</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> ss_addr_sk</span><span class="token operator">=</span><span class="token plain">ca_address_sk</span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> i_category </span><span class="token operator">in</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"Books"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Electronics"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">in</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1998</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">1999</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> ca_state </span><span class="token operator">in</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"LA"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"AK"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">group</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">by</span><span class="token plain"> cube</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">having</span><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">=</span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">=</span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">=</span><span class="token number">1</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">or</span><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">=</span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">=</span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">=</span><span class="token number">1</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">or</span><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">=</span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">=</span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">=</span><span class="token number">0</span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">order</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">by</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>在 HAVING 过滤条件中使用 GROUPING 函数,仅保留总计销售额,按年度汇总的销售额和按地区汇总的销售额。查询结果如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">---------------------+------------+----------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token identifier punctuation" style="color:rgb(248, 248, 242)">`</span><span class="token identifier">d1</span><span class="token identifier punctuation" style="color:rgb(248, 248, 242)">`</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token identifier punctuation" style="color:rgb(248, 248, 242)">`</span><span class="token identifier">d_date</span><span class="token identifier punctuation" style="color:rgb(248, 248, 242)">`</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> i_category </span><span class="token operator">|</span><span class="token plain"> ca_state </span><span class="token operator">|</span><span class="token plain"> total_sum </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">---------------------+------------+----------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">8690374.60</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2675198.33</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">6015176.27</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4369656.14</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4320718.46</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">---------------------+------------+----------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token number">5</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">rows</span><span class="token plain"> </span><span class="token operator">in</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">0.13</span><span class="token plain"> sec</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>你也可以使用 GROUPING 函数和 IF 函数提高查询的可读性,示例如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">select</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Multi-year sum"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">grouping</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Multi-category sum"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">sum</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ss_net_paid</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> total_sum </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> store_sales</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> date_dim d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> item</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> customer_address ca </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">where</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">d_date_sk </span><span class="token operator">=</span><span class="token plain"> ss_sold_date_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> i_item_sk </span><span class="token operator">=</span><span class="token plain"> ss_item_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> ss_addr_sk </span><span class="token operator">=</span><span class="token plain"> ca_address_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> i_category </span><span class="token operator">in</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"Books"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Electronics"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">in</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1998</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">1999</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">and</span><span class="token plain"> ca_state </span><span class="token operator">in</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"LA"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"AK"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">group</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">by</span><span class="token plain"> cube</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>查询结果如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">----------------+--------------------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> category </span><span class="token operator">|</span><span class="token plain"> total_sum </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">----------------+--------------------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2213703.82</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2155952.32</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2296244.59</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2024473.87</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Multi</span><span class="token operator">-</span><span class="token plain">category sum </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4369656.14</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Multi</span><span class="token operator">-</span><span class="token plain">category sum </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4320718.46</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> Multi</span><span class="token operator">-</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token plain"> sum </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4238177.69</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> Multi</span><span class="token operator">-</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token plain"> sum </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4452196.91</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> Multi</span><span class="token operator">-</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token plain"> sum </span><span class="token operator">|</span><span class="token plain"> Multi</span><span class="token operator">-</span><span class="token plain">category sum </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">8690374.60</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">----------------+--------------------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token number">9</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">rows</span><span class="token plain"> </span><span class="token operator">in</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">0.09</span><span class="token plain"> sec</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id=grouping_id>GROUPING_ID<a href=#grouping_id class=hash-link aria-label=GROUPING_ID的直接链接 title=GROUPING_ID的直接链接></a></h3>
<p><strong>1. 使用场景</strong></p>
<p>在数据库中,GROUPING_ID 和 GROUPING 函数都是用于处理多维数据聚合查询(如 ROLLUP 和 CUBE)时的辅助函数,它们帮助用户区分不同层级的聚合结果。如果你想确定某一行的聚合层级,你需要使用 GROUPING 函数对所有的 GROUP BY 列进行计算,因为单列的计算结果无法满足需求。</p>
<p>GROUPING_ID 函数比 GROUPING 更强大,因为它可以同时对多列进行检测。GROUPING_ID 函数接受多个列作为参数,并返回一个整数,该整数通过二进制位表示多个列的聚合状态。当使用表或物化视图保存计算结果时,使用 GROUPING 函数表示聚合的不同层级会占用较多的存储空间,在这种场景下,使用 GROUPING_ID 更加合适。</p>
<p>以 CUBE(a, b) 为例,其 GROUPING_ID 可以表示为:</p>
<table><thead><tr><th>聚合层级<th>Bit Vector<th>GROUPING_ID<th>GROUPING(a)<th>GROUPING(b)<tbody><tr><td>a,b<td>0 0<td>0<td>0<td>0<tr><td>a<td>0 1<td>1<td>0<td>1<tr><td>b<td>1 0<td>2<td>1<td>0<tr><td>Grand Total<td>1 1<td>3<td>1<td>1</table>
<p><strong>2. 语法和示例</strong></p>
<p>示例 SQL 查询如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ss_net_paid</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">AS</span><span class="token plain"> total_sum</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> GROUPING</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> GROUPING</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> GROUPING_ID</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> store_sales</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> date_dim d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> item</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> customer_address ca </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">WHERE</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">d_date_sk </span><span class="token operator">=</span><span class="token plain"> ss_sold_date_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> i_item_sk </span><span class="token operator">=</span><span class="token plain"> ss_item_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> ss_addr_sk </span><span class="token operator">=</span><span class="token plain"> ca_address_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> i_category </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'Books'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'Electronics'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1998</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">1999</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> ca_state </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'LA'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'AK'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> CUBE</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>查询结果如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+-------------+------------+------------------------+----------------------+---------------------------------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> i_category </span><span class="token operator">|</span><span class="token plain"> total_sum </span><span class="token operator">|</span><span class="token plain"> GROUPING</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> GROUPING</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> GROUPING_ID</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">year</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+-------------+------------+------------------------+----------------------+---------------------------------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2155952.32</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2213703.82</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2296244.59</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2024473.87</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4369656.14</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4320718.46</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4452196.91</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">4238177.69</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">8690374.60</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">3</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+-------------+------------+------------------------+----------------------+---------------------------------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token number">9</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">rows</span><span class="token plain"> </span><span class="token operator">in</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">0.12</span><span class="token plain"> sec</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id=grouping-sets>GROUPING SETS<a href=#grouping-sets class=hash-link aria-label="GROUPING SETS的直接链接" title="GROUPING SETS的直接链接"></a></h3>
<p><strong>1. 使用场景</strong></p>
<p>当需要有选择地指定要创建的组集,可以在 <code>GROUP BY</code> 子句中使用 <code>GROUPING SETS</code> 表达式。通过这种方法,允许用户跨多个维度进行精确指定,而无需计算整个 CUBE。</p>
<p>由于 CUBE 查询通常消耗较多资源,当仅对少数几个维度感兴趣时,使用 <code>GROUPING SETS</code> 可以提升查询的执行效率。</p>
<p><strong>2. 语法和示例</strong></p>
<p><code>GROUPING SETS</code> 的语法如下:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> GROUPING SETS</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">grouping_column_reference_list</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>如果你需要:</p>
<ul>
<li>
<p>每年度每类产品的销售额小计</p>
</li>
<li>
<p>每年度在每个州的销售额小计</p>
</li>
<li>
<p>每年度每个州每个产品的销售额小计</p>
</li>
</ul>
<p>那么你可以使用 <code>GROUPING SETS</code> 来指定这些维度并进行汇总。以下是一个示例:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ss_net_paid</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">AS</span><span class="token plain"> total_sum </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> store_sales</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> date_dim d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> item</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> customer_address ca </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">WHERE</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">d_date_sk </span><span class="token operator">=</span><span class="token plain"> ss_sold_date_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> i_item_sk </span><span class="token operator">=</span><span class="token plain"> ss_item_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> ss_addr_sk </span><span class="token operator">=</span><span class="token plain"> ca_address_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> i_category </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'Books'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'Electronics'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1998</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">1999</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> ca_state </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'LA'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'AK'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> GROUPING SETS</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">ORDER</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>查询结果:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+-------------+----------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> i_category </span><span class="token operator">|</span><span class="token plain"> ca_state </span><span class="token operator">|</span><span class="token plain"> total_sum </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+-------------+----------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1402539.19</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2967116.95</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2213703.82</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">719911.29</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1493792.53</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2155952.32</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">682627.90</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1998</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1473324.42</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1272659.14</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">3048059.32</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2024473.87</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">590880.07</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Books </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1433593.80</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">2296244.59</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> AK </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">681779.07</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1999</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> Electronics </span><span class="token operator">|</span><span class="token plain"> LA </span><span class="token operator">|</span><span class="token plain"> </span><span class="token number">1614465.52</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token operator">+</span><span class="token comment" style="color:rgb(98, 114, 164)">--------------+-------------+----------+------------+ </span><span class="token plain"></span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token number">16</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">rows</span><span class="token plain"> </span><span class="token operator">in</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">0.11</span><span class="token plain"> sec</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>上面的写法等价于使用 CUBE,但通过 <code>grouping_id</code> 指定了具体的聚合组合,从而减少了不必要的计算:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ss_net_paid</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">AS</span><span class="token plain"> total_sum</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> ca_state </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> store_sales</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> date_dim d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> item</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> customer_address ca </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">WHERE</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> d1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">d_date_sk </span><span class="token operator">=</span><span class="token plain"> ss_sold_date_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> i_item_sk </span><span class="token operator">=</span><span class="token plain"> ss_item_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> ss_addr_sk </span><span class="token operator">=</span><span class="token plain"> ca_address_sk </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> i_category </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'Books'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'Electronics'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1998</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">1999</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">AND</span><span class="token plain"> ca_state </span><span class="token operator">IN</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'LA'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'AK'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> CUBE</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">HAVING</span><span class="token plain"> grouping_id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">OR</span><span class="token plain"> grouping_id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token number">2</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token operator">OR</span><span class="token plain"> grouping_id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">YEAR</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d_date</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> ca_state</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> i_category</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class=admonitionHeading_f1Ed>备注</div><div class=admonitionContent_UjKb><p>使用 <code>CUBE</code> 会计算所有可能的聚合层级(在这个例子中是八种),但实际上你可能只对其中的几种感兴趣。</div></div>
<p><strong>3. 语义等价</strong></p>
<ul>
<li>
<p><strong>GROUPING SETS 与 GROUP BY UNION ALL</strong></p>
<p><code>GROUPING SETS</code> 语句:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> k1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> k2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">k3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> t </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> GROUPING SETS </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">k1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> k2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">k1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">k2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>其查询结果等价于使用 <code>UNION ALL</code> 连接的多个 <code>GROUP BY</code> 查询:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> k1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> k2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">k3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> t </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> k1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> k2 </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">UNION</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">ALL</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> k1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">k3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> t </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> k1 </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">UNION</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">ALL</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> k2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">k3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> t </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> k2 </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">UNION</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">ALL</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token boolean">NULL</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">k3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> t</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>使用 <code>UNION ALL</code> 连接的查询较长,同时需要多次扫描基表,因此在书写和执行上的效率都较低。</p>
</li>
<li>
<p><strong>GROUPING SETS 与 ROLLUP</strong></p>
<p><code>ROLLUP</code> 是对 <code>GROUPING SETS</code> 的扩展。例如:</p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">SELECT</span><span class="token plain"> a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> b</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> c</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SUM</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">d</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">FROM</span><span class="token plain"> tab1 </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">GROUP</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">BY</span><span class="token plain"> ROLLUP</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> b</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> c</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
<p>这个 <code>ROLLUP</code> 等价于下面的 <code>GROUPING SETS</code></p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">GROUPING SETS </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> b</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> c</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> b</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
</li>
<li>
<p><strong>GROUPING SETS 与 CUBE</strong></p>
<p><code>CUBE(a, b, c)</code> 等价于下面的 <code>GROUPING SETS</code></p>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#F8F8F2;--prism-background-color:#282A36><div class=codeBlockContent_biex><pre tabindex=0 class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style=color:#F8F8F2;background-color:#282A36><code class=codeBlockLines_e6Vv><span class=token-line style=color:#F8F8F2><span class="token plain">GROUPING SETS </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> b</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> c</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> b</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> c</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">b</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> c</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">b</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">c</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><br></span><span class=token-line style=color:#F8F8F2><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class=buttonGroup__atx><button type=button aria-label=复制代码到剪贴板 title=复制 class=clean-btn><span class=copyButtonIcons_eSgA aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_y97N><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_LjdS><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id=附录>附录<a href=#附录 class=hash-link aria-label=附录的直接链接 title=附录的直接链接></a></h2>
<p>建表语句和数据文件见<a href=/zh-CN/docs/dev/query-data/window-function/>分析函数 (窗口函数)</a>附录。</div></article><div class="flex items-center text-sm lg:text-base justify-end lg:col mt-10"><a href="https://github.com/apache/doris-website/issues/new?title=Issue on docs&body=Path:false" target=_blank rel="noopener noreferrer" class="lg:mr-6 footerBtn_e3I8"><svg width=20 height=20 viewBox="0 0 20 20" fill=none><path d="M9.48038 2.9C9.71132 2.5 10.2887 2.5 10.5196 2.9L18.1406 16.1C18.3716 16.5 18.0829 17 17.621 17H2.37898C1.9171 17 1.62842 16.5 1.85936 16.1L9.48038 2.9Z" stroke=currentColor stroke-width=1.2 stroke-linecap=round /><path d="M10.5699 7.9516C10.5874 7.5628 10.2769 7.23804 9.88766 7.23804C9.49847 7.23804 9.18796 7.5628 9.20543 7.9516L9.41597 12.6385C9.42731 12.8908 9.63513 13.0895 9.88766 13.0895C10.1402 13.0895 10.348 12.8908 10.3593 12.6385L10.5699 7.9516ZM9.89338 13.7638C9.65338 13.7638 9.44766 13.8323 9.28766 13.9923C9.12766 14.1409 9.04766 14.3352 9.04766 14.5752C9.04766 14.8152 9.12766 15.0095 9.28766 15.1695C9.45909 15.318 9.6648 15.398 9.89338 15.398C10.1219 15.398 10.3162 15.318 10.4762 15.158C10.6477 14.998 10.7277 14.8038 10.7277 14.5752C10.7277 14.3352 10.6477 14.1409 10.4762 13.9923C10.3162 13.8323 10.1219 13.7638 9.89338 13.7638Z" fill=currentColor /></svg> <span class=ml-2>Report issue</span></a></div><nav class="pagination-nav docusaurus-mt-lg" aria-label=文件选项卡><a class="pagination-nav__link pagination-nav__link--prev" href=/zh-CN/docs/dev/query-data/subquery/><div class=pagination-nav__sublabel>上一页</div><div class=pagination-nav__label>子查询</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/zh-CN/docs/dev/query-data/window-function/><div class=pagination-nav__sublabel>下一页</div><div class=pagination-nav__label>分析函数(窗口函数)</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_jeP5 thin-scrollbar toc-container theme-doc-toc-desktop"><div><a href=/zh-CN/><div class="toc-icon-content group"><svg width=21 height=20 fill=currentColor viewBox="0 0 21 20" class=group-hover:text-[#444FD9]><path fill-rule=evenodd d="M3.835 6.44a1 1 0 0 0-.445.832v8.939c0 .436.354.79.79.79H16.81a.79.79 0 0 0 .79-.79V7.272a1 1 0 0 0-.446-.832L11.05 2.37a1 1 0 0 0-1.11 0zm7.26 4.16a.6.6 0 1 0-1.2 0v3.3a.6.6 0 0 0 1.2 0z" clip-rule=evenodd /></svg><span class=group-hover:text-[#444FD9]>Doris 首页</span></div></a><div class="cursor-pointer toc-icon-content group"><svg class=group-hover:text-[#444FD9] width=21 height=20 fill=currentColor viewBox="0 0 21 20"><path d="M15.944 3H5.056C4.2 3 3.5 3.7 3.5 4.556v10.888C3.5 16.3 4.2 17 5.056 17h10.888c.856 0 1.556-.7 1.556-1.556V4.557C17.5 3.7 16.8 3 15.944 3m-5.791 5.998c-.179.575-.384 1.466-.686 2.197-.156.396-.149.327-.266.577l.101-.033c1.04-.29 1.767-.363 2.444-.487-.136-.107-.254-.19-.348-.276-.464-.515-.627-.611-1.245-1.978m5.1 3.297c-.133.147-.366.233-.708.233-.591 0-1.129-.163-1.906-.56-1.338.148-2.761.304-3.562.561q-.06.02-.14.055c-.965 1.648-1.68 2.347-2.31 2.32-.2-.01-.49-.125-.583-.18l-.116-.109-.04-.077a.7.7 0 0 1-.039-.42c.086-.412.529-1.065 1.462-1.649.148-.109.485-.281.796-.429.236-.374.345-.614.643-1.278a23 23 0 0 0 .84-2.443V8.31c-.288-.941-.459-1.58-.171-2.614.07-.296.327-.6.614-.6h.187c.179 0 .35.063.475.188.513.513.272 1.836.015 2.87q-.02.072-.031.109c.311.879.803 1.747 1.293 2.151.202.156.4.335.65.475a9 9 0 0 1 .982-.073c.964 0 1.547.17 1.773.536a.63.63 0 0 1 .093.428.75.75 0 0 1-.218.513m-.492-.65c-.078-.078-.301-.3-1.39-.3-.055 0-.188-.014-.258.064.568.249 1.111.438 1.469.438q.08-.002.148-.016h.03c.04-.015.063-.023.07-.1-.015-.024-.03-.055-.07-.086m-6.846 1.114a3 3 0 0 0-.374.242c-.552.505-.902 1.019-.94 1.314.35-.117.808-.63 1.314-1.556m2.22-5.266.04-.031c.054-.25.092-.517.139-.688l.023-.124c.078-.444.048-.703-.084-.89l-.117-.038q-.03.045-.054.093c-.133.327-.125.978.053 1.678"/></svg><span class="group-hover:text-[#444FD9] mr-2">下载 PDF</span><div class="ant-spin ant-spin-sm css-1v613y0" aria-live=polite aria-busy=false><span class=ant-spin-dot-holder><span class="ant-spin-dot ant-spin-dot-spin"><i class=ant-spin-dot-item></i><i class=ant-spin-dot-item></i><i class=ant-spin-dot-item></i><i class=ant-spin-dot-item></i></span></span></div></div><a href=https://doris-forum.org.cn target=_blank rel="noopener noreferrer"><div class="toc-icon-content group"><svg width=20 height=20 fill=none viewBox="0 0 20 20" class=group-hover:text-[#444FD9]><g clip-path=url(#a)><path fill=currentColor fill-rule=evenodd d="M3.75 3a.75.75 0 0 0-.75.75v9.519c0 .414.336.75.75.75h1.884v2.3a.4.4 0 0 0 .595.349l4.577-2.554a.75.75 0 0 1 .366-.095h5.078a.75.75 0 0 0 .75-.75V3.75a.75.75 0 0 0-.75-.75zM7.5 8.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0m3.5 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0m2.5 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2" clip-rule=evenodd /></g><defs><clipPath id=a><path fill=#fff d="M0 0h20v20H0z"/></clipPath></defs></svg> <span class=group-hover:text-[#444FD9]>技术论坛</span></div></a></div><div><span class="ml-4 title-text">本页导航</span><ul class="table-of-contents table-of-contents__left-border"><li><a href=#rollup class="table-of-contents__link toc-highlight">ROLLUP</a><ul><li><a href=#使用场景 class="table-of-contents__link toc-highlight">使用场景</a><li><a href=#语法和示例 class="table-of-contents__link toc-highlight">语法和示例</a></ul><li><a href=#cube class="table-of-contents__link toc-highlight">CUBE</a><ul><li><a href=#使用场景-1 class="table-of-contents__link toc-highlight">使用场景</a><li><a href=#语法和示例-1 class="table-of-contents__link toc-highlight">语法和示例</a></ul><li><a href=#grouping-function class="table-of-contents__link toc-highlight">GROUPING FUNCTION</a><ul><li><a href=#grouping class="table-of-contents__link toc-highlight">GROUPING</a><li><a href=#grouping_id class="table-of-contents__link toc-highlight">GROUPING_ID</a><li><a href=#grouping-sets class="table-of-contents__link toc-highlight">GROUPING SETS</a></ul><li><a href=#附录 class="table-of-contents__link toc-highlight">附录</a></ul></div></div></div></div></div></main></div></div></div><div class="footer pt-16 pb-10"><div class=container><div class=footer-box><div class=left><img src=/zh-CN/images/asf_logo_apache.svg alt="" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE"><img src=/zh-CN/images/asf_logo_apache.svg alt="" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU"><div class="row footer__links"><div class="col footer__col"><div class=footer__title>ASF</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.apache.org/ target=_blank rel="noopener noreferrer" class=footer__link-item>Foundation<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://www.apache.org/licenses/ target=_blank rel="noopener noreferrer" class=footer__link-item>License<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://www.apache.org/events/current-event target=_blank rel="noopener noreferrer" class=footer__link-item>Events<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://www.apache.org/foundation/sponsorship.html target=_blank rel="noopener noreferrer" class=footer__link-item>Sponsorship<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://privacy.apache.org/policies/privacy-policy-public.html target=_blank rel="noopener noreferrer" class=footer__link-item>Privacy<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://www.apache.org/security/ target=_blank rel="noopener noreferrer" class=footer__link-item>Security<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://www.apache.org/foundation/thanks.html target=_blank rel="noopener noreferrer" class=footer__link-item>Thanks<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div><div class="col footer__col"><div class=footer__title>Resources</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/zh-CN/download/>Download</a><li class=footer__item><a class=footer__link-item href=/zh-CN/blog/>Blog</a><li class=footer__item><a class=footer__link-item href=/zh-CN/ecosystem/cluster-management/>Ecosystem</a><li class=footer__item><a class=footer__link-item href=/zh-CN/users/>Users</a><li class=footer__item><a href=https://github.com/apache/doris/discussions target=_blank rel="noopener noreferrer" class=footer__link-item>Discussions<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div><div class="col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/zh-CN/community/how-to-contribute/contribute-to-doris/>How to contribute</a><li class=footer__item><a href=https://github.com/apache/doris/ target=_blank rel="noopener noreferrer" class=footer__link-item>Source code<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a class=footer__link-item href=/zh-CN/community/team/>Doris team</a><li class=footer__item><a href=https://github.com/apache/doris/issues/30669 target=_blank rel="noopener noreferrer" class=footer__link-item>Roadmap<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://cwiki.apache.org/confluence/display/DORIS/Doris+Improvement+Proposals target=_blank rel="noopener noreferrer" class=footer__link-item>Improvement proposal<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_nPIU><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div></div></div><div class=right><div class=footer__title>Join the community</div><div class=social-list><div class=social><a href=mailto:dev@doris.apache.org target=_blank title=mail class=item><svg width=2em height=2em viewBox="0 0 32 32" fill=none><path d="M5.6003 6H26.3997C27.8186 6 28.982 7.10964 29 8.46946L16.0045 15.454L3.01202 8.47829C3.02405 7.11258 4.1784 6 5.6003 6ZM3.01202 11.1508L3 23.5011C3 24.8756 4.16938 26 5.6003 26H26.3997C27.8306 26 29 24.8756 29 23.5011V11.145L16.3111 17.8028C16.1157 17.9058 15.8813 17.9058 15.6889 17.8028L3.01202 11.1508Z" fill=currentColor /></svg></a><a href=https://github.com/apache/doris target=_blank title=github class=item><svg width=2em height=2em viewBox="0 0 32 32" fill=none><path d="M16.0001 2.66675C8.63342 2.66675 2.66675 8.63341 2.66675 16.0001C2.66524 18.7991 3.54517 21.5276 5.1817 23.7983C6.81824 26.0691 9.12828 27.7668 11.7841 28.6508C12.4508 28.7668 12.7001 28.3668 12.7001 28.0161C12.7001 27.7001 12.6828 26.6508 12.6828 25.5334C9.33342 26.1508 8.46675 24.7174 8.20008 23.9668C8.04942 23.5828 7.40008 22.4001 6.83342 22.0828C6.36675 21.8334 5.70008 21.2161 6.81608 21.2001C7.86675 21.1828 8.61608 22.1668 8.86675 22.5668C10.0668 24.5828 11.9841 24.0161 12.7494 23.6668C12.8668 22.8001 13.2161 22.2174 13.6001 21.8841C10.6334 21.5508 7.53342 20.4001 7.53342 15.3001C7.53342 13.8494 8.04942 12.6507 8.90008 11.7161C8.76675 11.3827 8.30008 10.0161 9.03342 8.18275C9.03342 8.18275 10.1494 7.83342 12.7001 9.55075C13.7855 9.2495 14.907 9.09787 16.0334 9.10008C17.1668 9.10008 18.3001 9.24942 19.3668 9.54942C21.9161 7.81608 23.0334 8.18408 23.0334 8.18408C23.7668 10.0174 23.3001 11.3841 23.1668 11.7174C24.0161 12.6507 24.5334 13.8334 24.5334 15.3001C24.5334 20.4174 21.4174 21.5508 18.4508 21.8841C18.9334 22.3001 19.3508 23.1001 19.3508 24.3508C19.3508 26.1334 19.3334 27.5668 19.3334 28.0174C19.3334 28.3668 19.5841 28.7828 20.2508 28.6494C22.8975 27.7558 25.1973 26.0547 26.8266 23.7856C28.4559 21.5165 29.3327 18.7936 29.3334 16.0001C29.3334 8.63341 23.3668 2.66675 16.0001 2.66675V2.66675Z" fill=currentColor /></svg></a><a href=https://twitter.com/doris_apache target=_blank title=twitter class=item><svg width=2em height=2em viewBox="0 0 32 32" fill=none><path d="M4.625 4.625H11.2809L27.375 27.375H20.7191L4.625 4.625ZM7.52549 6.10639L21.5236 25.8936H24.4746L10.4764 6.10639H7.52549Z" fill=currentColor /><path d="M14.4268 18.4803L6.53447 27.375H4.625L13.5581 17.2525L14.4268 18.4803ZM18.1299 14.3066L26.7203 4.625H24.7017L17.2525 13.0662L18.1299 14.3066Z" fill=currentColor /></svg></a><a href=https://doris.apache.org/slack title=slack target=_blank class=item><svg width=2em height=2em viewBox="0 0 32 32" fill=none><g clip-path=url(#clip0_125_278)><path d="M12.5875 16.6906C11.0844 16.6906 9.86562 17.9094 9.86562 19.4125V26.2375C9.86562 26.9594 10.1524 27.6517 10.6628 28.1622C11.1733 28.6726 11.8656 28.9594 12.5875 28.9594C13.3094 28.9594 14.0017 28.6726 14.5122 28.1622C15.0226 27.6517 15.3094 26.9594 15.3094 26.2375V19.4531C15.3094 17.9094 14.0906 16.6906 12.5875 16.6906ZM3 19.4531C3 20.175 3.28677 20.8673 3.79722 21.3778C4.30767 21.8882 4.99999 22.175 5.72187 22.175C6.44376 22.175 7.13608 21.8882 7.64653 21.3778C8.15698 20.8673 8.44375 20.175 8.44375 19.4531V16.7312H5.7625C4.25938 16.6906 3 17.9094 3 19.4531ZM12.5875 3C11.8656 3 11.1733 3.28677 10.6628 3.79722C10.1524 4.30767 9.86562 4.99999 9.86562 5.72187C9.86562 6.44376 10.1524 7.13608 10.6628 7.64653C11.1733 8.15698 11.8656 8.44375 12.5875 8.44375H15.3094V5.72187C15.3094 4.21875 14.0906 3 12.5875 3ZM5.72187 15.3094H12.5469C13.2688 15.3094 13.9611 15.0226 14.4715 14.5122C14.982 14.0017 15.2688 13.3094 15.2688 12.5875C15.2688 11.8656 14.982 11.1733 14.4715 10.6628C13.9611 10.1524 13.2688 9.86562 12.5469 9.86562H5.72187C4.99999 9.86562 4.30767 10.1524 3.79722 10.6628C3.28677 11.1733 3 11.8656 3 12.5875C3 13.3094 3.28677 14.0017 3.79722 14.5122C4.30767 15.0226 4.99999 15.3094 5.72187 15.3094ZM26.2375 9.86562C24.7344 9.86562 23.5156 11.0844 23.5156 12.5875V15.3094H26.2375C26.9594 15.3094 27.6517 15.0226 28.1622 14.5122C28.6726 14.0017 28.9594 13.3094 28.9594 12.5875C28.9594 11.8656 28.6726 11.1733 28.1622 10.6628C27.6517 10.1524 26.9594 9.86562 26.2375 9.86562ZM16.6906 5.72187V12.5875C16.6906 13.3094 16.9774 14.0017 17.4878 14.5122C17.9983 15.0226 18.6906 15.3094 19.4125 15.3094C20.1344 15.3094 20.8267 15.0226 21.3372 14.5122C21.8476 14.0017 22.1344 13.3094 22.1344 12.5875V5.72187C22.1344 4.99999 21.8476 4.30767 21.3372 3.79722C20.8267 3.28677 20.1344 3 19.4125 3C18.6906 3 17.9983 3.28677 17.4878 3.79722C16.9774 4.30767 16.6906 4.99999 16.6906 5.72187ZM22.1344 26.2781C22.1344 24.775 20.9156 23.5562 19.4125 23.5562H16.6906V26.2781C16.6906 27 16.9774 27.6923 17.4878 28.2028C17.9983 28.7132 18.6906 29 19.4125 29C20.1344 29 20.8267 28.7132 21.3372 28.2028C21.8476 27.6923 22.1344 27 22.1344 26.2781ZM26.2781 16.6906H19.4125C18.6906 16.6906 17.9983 16.9774 17.4878 17.4878C16.9774 17.9983 16.6906 18.6906 16.6906 19.4125C16.6906 20.1344 16.9774 20.8267 17.4878 21.3372C17.9983 21.8476 18.6906 22.1344 19.4125 22.1344H26.2375C27.7406 22.1344 28.9594 20.9156 28.9594 19.4125C29 17.9094 27.7812 16.6906 26.2781 16.6906Z" fill=currentColor /></g><defs><clipPath id=clip0_125_278><rect width=26 height=26 fill=currentColor transform="translate(3 3)"/></clipPath></defs></svg></a></div><div class=social><a href=https://www.youtube.com/hashtag/apachedoris title=youtube target=_blank class=item><svg width=2em height=2em viewBox="0 0 32 32" fill=none><path d="M28.5167 7.83429C28.9436 8.25423 29.2532 8.77539 29.4154 9.34742C29.8205 11.5462 30.0159 13.7775 29.999 16.0121C30.0144 18.2382 29.819 20.4609 29.4154 22.6515C29.2532 23.2235 28.9436 23.7446 28.5167 24.1645C28.0898 24.5845 27.5601 24.889 26.9785 25.0486C24.7728 25.625 16.0124 25.625 16.0124 25.625C16.0124 25.625 7.22652 25.625 5.04638 25.0486C4.46489 24.889 3.9351 24.5845 3.5082 24.1645C3.08132 23.7446 2.77176 23.2235 2.60948 22.6515C2.19736 20.4617 1.9934 18.239 2.00025 16.0121C1.9918 13.7767 2.19577 11.5455 2.60948 9.34742C2.77176 8.77539 3.08132 8.25423 3.5082 7.83429C3.9351 7.41436 4.46489 7.10985 5.04638 6.95021C7.25103 6.36354 16.0124 6.37502 16.0124 6.37502C16.0124 6.37502 24.796 6.37502 26.9785 6.95021C27.5601 7.10985 28.0898 7.41436 28.5167 7.83429ZM12.5 21.25L21.25 16.008L12.5 10.75V21.25Z" fill=currentColor /></svg></a><a href=https://www.linkedin.com/company/doris-apache/ title=linkedin target=_blank class=item><svg width=2rem height=2rem viewBox="0 0 32 32" fill=none><path d="M4.29925 26.9996H9.66738V11.6781H4.29925V26.9996ZM22.1628 11.1949C19.9409 11.1949 18.7157 11.9388 17.3054 13.7407V11.6777H11.9459V26.9996H17.305V18.6738C17.305 16.9168 18.145 15.1982 20.1535 15.1982C22.162 15.1982 22.6559 16.9164 22.6559 18.632V27H28V18.2902C28 12.2386 24.3854 11.1949 22.1628 11.1949ZM6.99325 4C5.3395 4 4 5.21047 4 6.7046C4 8.19759 5.3395 9.40617 6.99325 9.40617C8.6455 9.40617 9.985 8.19722 9.985 6.7046C9.985 5.21047 8.6455 4 6.99325 4Z" fill=white /></svg></a><a href=https://medium.com/@ApacheDoris title=medium target=_blank class=item><svg width=2em height=2em viewBox="0 0 32 32" fill=none><g id=Frame><path id=Vector d="M17.7967 16.5385C17.8029 18.53 16.9746 20.4425 15.4937 21.8559C14.0128 23.2693 12.0004 24.0681 9.89836 24.0769C7.79633 24.0681 5.78391 23.2693 4.30302 21.8559C2.82212 20.4425 1.99383 18.53 2.00003 16.5385C1.99383 14.5469 2.82212 12.6344 4.30302 11.221C5.78391 9.80759 7.79633 9.00878 9.89836 9C12.0004 9.00878 14.0128 9.80759 15.4937 11.221C16.9746 12.6344 17.8029 14.5469 17.7967 16.5385ZM26.4533 16.5385C26.4533 20.4514 24.6917 23.6348 22.51 23.6348C20.3283 23.6348 18.555 20.4514 18.555 16.5385C18.555 12.6255 20.3283 9.44214 22.51 9.44214C24.6917 9.44214 26.4533 12.6255 26.4533 16.5385ZM30 16.5385C30 20.0424 29.3817 22.8942 28.6117 22.8942C27.8417 22.8942 27.2233 20.0424 27.2233 16.5385C27.2233 13.0345 27.8417 10.1827 28.6117 10.1827C29.3817 10.1827 30 13.0345 30 16.5385Z" fill=currentColor /></g></svg></a></div></div></div></div><div class=footer__copyright>Copyright © 2026 The Apache Software Foundation,Licensed under the <a href=https://www.apache.org/licenses/LICENSE-2.0 target=_blank>Apache License, Version 2.0</a>. Apache, Doris, Apache Doris, the Apache feather logo and the Apache Doris logo are trademarks of The Apache Software Foundation.</div></div></div></div>