                ╭→─────────────→╮                                                
       ┌──────┐ ↑ ┌───────────┐ ↓   ╔═════════════════════════╗                  
├┼───┬→┤ WITH ├─┴→┤ RECURSIVE ├→┴─┬─╢ common-table-expression ╟→╮                
     ↓ └──────┘   └───────────┘   ↑ ╚═════════════════════════╝ ↓                
     │                            │            ┌───┐            │                
     │                            ╰←───────────┤ , ├───────────←┤                
     │                                         └───┘            │                
     ↓                                                          ↓                
     ┼──────────────────────────────────────────────────────────╯                
     ↓                                                                           
     │ ┏━╸select-core╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  
     │ ┃                                                                      ┃  
     │ ┃      ┌────────┐                    ╔═══════════════╗                 ┃  
     ├→╂──┬→──┤ SELECT ├─┬→────────────→┬─┬─╢ result-column ╟→╮               ┃  
     ↑ ┃  ↓   └────────┘ ↓ ┌──────────┐ ↑ ↑ ╚═══════════════╝ ↓               ┃  
     │ ┃  │              ├→┤ DISTINCT ├→┤ │       ┌───┐       │               ┃  
     │ ┃  │              │ └──────────┘ │ ╰←──────┤ , ├──────←┤               ┃  
     │ ┃  │              │ ┌─────┐      │         └───┘       │               ┃  
     │ ┃  │              ╰→┤ ALL ├─────→╯                     │               ┃  
     │ ┃  │                └─────┘                            ↓               ┃  
     │ ┃  │ ╭─────────────────────────────────────────────────╯               ┃  
     │ ┃  │ ↓→────────────────────────────────────→╮                          ┃  
     │ ┃  │ │                                      │                          ┃  
     │ ┃  │ │ ┌──────┐     ╔═══════════════════╗   ↓   ┌───────┐  ╔══════╗    ┃  
     │ ┃  │ ╰→┤ FROM ├─┬→┬─╢ table-or-subquery ╟─┬→┼─┬→┤ WHERE ├──╢ expr ╟→╮  ┃  
     │ ┃  │   └──────┘ ↓ ↑ ╚═══════════════════╝ ↓ ↑ ↓ └───────┘  ╚══════╝ │  ┃  
     │ ┃  │            │ │         ┌───┐         │ │ │                     │  ┃  
     │ ┃  │            │ ╰←────────┤ , ├────────←╯ │ │                     │  ┃  
     │ ┃  │            │           └───┘           │ │                     │  ┃  
     │ ┃  │            │ ╔═════════════╗           │ │                     │  ┃  
     │ ┃  │            ╰→╢ join-clause ╟──────────→╯ │                     │  ┃  
     │ ┃  │              ╚═════════════╝             ↓                     ↓  ┃  
     │ ┃  │ ╭────────────────────────────────────────┴─────────────────────╯  ┃  
     │ ┃  │ ↓→──────────────────────────────→╮                                ┃  
     │ ┃  │ │ ┌───────┐  ┌────┐   ╔══════╗   ↓   ┌────────┐  ╔══════╗         ┃  
     │ ┃  │ ╰→┤ GROUP ├──┤ BY ├─┬─╢ expr ╟─┬→┴─┬→┤ HAVING ├──╢ expr ╟→╮       ┃  
     │ ┃  │   └───────┘  └────┘ ↑ ╚══════╝ ↓   ↓ └────────┘  ╚══════╝ │       ┃  
     │ ┃  │                     │   ┌───┐  │   │                      │       ┃  
     │ ┃  │                     ╰←──┤ , ├─←╯   │                      │       ┃  
     │ ┃  │                         └───┘      ↓                      ↓       ┃  
     │ ┃  │ ╭──────────────────────────────────┴──────────────────────╯       ┃  
     │ ┃  │ ↓→────────────────────────────────────────────────────────────→╮  ┃  
     │ ┃  │ │ ┌────────┐   ╔═════════════╗  ┌────┐  ╔═════════════╗        ↓  ┃  
     │ ┃  │ ╰→┤ WINDOW ├─┬─╢ window-name ╟──┤ AS ├──╢ window-defn ╟─┬─────→┼──╂→╮
     │ ┃  │   └────────┘ ↑ ╚═════════════╝  └────┘  ╚═════════════╝ ↓      ↑  ┃ ↓
     │ ┃  │              │                   ┌───┐                  │      │  ┃ │
     │ ┃  │              ╰←──────────────────┤ , ├─────────────────←╯      │  ┃ │
     │ ┃  │                                  └───┘                         │  ┃ │
     │ ┃  │                                                                │  ┃ │
     │ ┃  │ ┌────────┐   ┌───┐   ╔══════╗   ┌───┐                          │  ┃ │
     │ ┃  ╰→┤ VALUES ├─┬─┤ ( ├─┬─╢ expr ╟─┬─┤ ) ├─┬───────────────────────→╯  ┃ │
     │ ┃    └────────┘ ↑ └───┘ ↑ ╚══════╝ ↓ └───┘ ↓                           ┃ │
     │ ┃               │       │   ┌───┐  │       │                           ┃ │
     │ ┃               │       ╰←──┤ , ├─←╯       │                           ┃ │
     │ ┃               │           └───┘          │                           ┃ │
     │ ┃               │           ┌───┐          │                           ┃ │
     │ ┃               ╰←──────────┤ , ├─────────←╯                           ┃ │
     │ ┃                           └───┘                                      ┃ │
     │ ┃                                                                      ┃ │
     │ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ │
     │                                                                          │
     │                           ╔═══════════════════╗                          │
     ╰←──────────────────────────╢ compound-operator ╟─────────────────────────←┤
                                 ╚═══════════════════╝                          │
                                                                                ↓
     ╭──────────────────────────────────────────────────────────────────────────╯
     ↓                                                                           
     │ ┌───────┐  ┌────┐   ╔═══════════════╗                                     
     ├→┤ ORDER ├──┤ BY ├─┬─╢ ordering-term ╟→╮                                   
     │ └───────┘  └────┘ ↑ ╚═══════════════╝ ↓                                   
     │                   │       ┌───┐       │                                   
     │                   ╰←──────┤ , ├──────←┤                                   
     │                           └───┘       │                                   
     ↓                                       ↓                                   
     ┼───────────────────────────────────────╯                                   
     ↓                                                                           
     ├→────────────────────┬─────────────────────→╮                              
     │                     ↑                      │                              
     │ ┌───────┐  ╔══════╗ ↑ ┌────────┐  ╔══════╗ ↓                              
     ╰→┤ LIMIT ├──╢ expr ╟─┼→┤ OFFSET ├──╢ expr ╟→┼───┼┤                         
       └───────┘  ╚══════╝ ↓ └────────┘  ╚══════╝ ↑                              
                           │ ┌───┐  ╔══════╗      │                              
                           ╰→┤ , ├──╢ expr ╟─────→╯                              
                             └───┘  ╚══════╝                                     
