<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> SQL and Generic Functions — SQLAlchemy 1.2 Documentation </title> <!-- begin iterate through site-imported + sphinx environment css_files --> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="../_static/docs.css" type="text/css" /> <link rel="stylesheet" href="../_static/changelog.css" type="text/css" /> <link rel="stylesheet" href="../_static/sphinx_paramlinks.css" type="text/css" /> <!-- end iterate through site-imported + sphinx environment css_files --> <!-- begin layout.mako headers --> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="copyright" title="Copyright" href="../copyright.html" /> <link rel="top" title="SQLAlchemy 1.2 Documentation" href="../index.html" /> <link rel="up" title="SQL Statements and Expressions API" href="expression_api.html" /> <link rel="next" title="Custom SQL Constructs and Compilation Extension" href="compiler.html" /> <link rel="prev" title="Insert, Updates, Deletes" href="dml.html" /> <!-- end layout.mako headers --> </head> <body> <div id="docs-container"> <div id="docs-top-navigation-container" class="body-background"> <div id="docs-header"> <div id="docs-version-header"> Release: <span class="version-num">1.2.19</span> | Release Date: April 15, 2019 </div> <h1>SQLAlchemy 1.2 Documentation</h1> </div> </div> <div id="docs-body-container"> <div id="fixed-sidebar" class="withsidebar"> <div id="docs-sidebar-popout"> <h3><a href="../index.html">SQLAlchemy 1.2 Documentation</a></h3> <p id="sidebar-topnav"> <a href="../contents.html">Contents</a> | <a href="../genindex.html">Index</a> </p> <div id="sidebar-search"> <form class="search" action="../search.html" method="get"> <label> Search terms: <input type="text" placeholder="search..." name="q" size="12" /> </label> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <div id="docs-sidebar"> <div id="sidebar-banner"> </div> <div id="docs-sidebar-inner"> <h3> <a href="index.html" title="SQLAlchemy Core">SQLAlchemy Core</a> </h3> <ul> <li><span class="link-container"><a class="reference external" href="tutorial.html">SQL Expression Language Tutorial</a></span></li> <li><span class="link-container"><a class="reference external" href="expression_api.html">SQL Statements and Expressions API</a></span><ul> <li><span class="link-container"><a class="reference external" href="sqlelement.html">Column Elements and Expressions</a></span></li> <li><span class="link-container"><a class="reference external" href="selectable.html">Selectables, Tables, FROM objects</a></span></li> <li><span class="link-container"><a class="reference external" href="dml.html">Insert, Updates, Deletes</a></span></li> <li class="selected"><span class="link-container"><strong>SQL and Generic Functions</strong><a class="paramlink headerlink reference internal" href="#">¶</a></span></li> <li><span class="link-container"><a class="reference external" href="compiler.html">Custom SQL Constructs and Compilation Extension</a></span></li> <li><span class="link-container"><a class="reference external" href="serializer.html">Expression Serializer Extension</a></span></li> </ul> </li> <li><span class="link-container"><a class="reference external" href="schema.html">Schema Definition Language</a></span></li> <li><span class="link-container"><a class="reference external" href="types.html">Column and Data Types</a></span></li> <li><span class="link-container"><a class="reference external" href="engines_connections.html">Engine and Connection Use</a></span></li> <li><span class="link-container"><a class="reference external" href="api_basics.html">Core API Basics</a></span></li> </ul> </div> </div> </div> <div id="docs-body" class="withsidebar" > <div class="section" id="module-sqlalchemy.sql.expression"> <span id="sql-and-generic-functions"></span><span id="generic-functions"></span><span id="functions-toplevel"></span><h1>SQL and Generic Functions<a class="headerlink" href="#module-sqlalchemy.sql.expression" title="Permalink to this headline">¶</a></h1> <p>SQL functions which are known to SQLAlchemy with regards to database-specific rendering, return types and argument behavior. Generic functions are invoked like all SQL functions, using the <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-attr docutils literal notranslate"><span class="pre">func</span></code></a> attribute:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">select</span><span class="p">([</span><span class="n">func</span><span class="o">.</span><span class="n">count</span><span class="p">()])</span><span class="o">.</span><span class="n">select_from</span><span class="p">(</span><span class="n">sometable</span><span class="p">)</span></pre></div> </div> <p>Note that any name not known to <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-attr docutils literal notranslate"><span class="pre">func</span></code></a> generates the function name as is - there is no restriction on what SQL functions can be called, known or unknown to SQLAlchemy, built-in or user defined. The section here only describes those functions where SQLAlchemy already knows what argument and return types are in use.</p> <span class="target" id="module-sqlalchemy.sql.functions"></span><p>SQL function API, factories, and built-in functions.</p> <dl class="class"> <dt id="sqlalchemy.sql.functions.AnsiFunction"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">AnsiFunction</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.AnsiFunction" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.AnsiFunction.identifier"> <code class="descname">identifier</code><em class="property"> = 'AnsiFunction'</em><a class="headerlink" href="#sqlalchemy.sql.functions.AnsiFunction.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.AnsiFunction.name"> <code class="descname">name</code><em class="property"> = 'AnsiFunction'</em><a class="headerlink" href="#sqlalchemy.sql.functions.AnsiFunction.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.Function"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">Function</code><span class="sig-paren">(</span><em>name</em>, <em>*clauses</em>, <em>**kw</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.Function" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.FunctionElement</span></code></a></p> <p>Describe a named SQL function.</p> <p>See the superclass <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionElement</span></code></a> for a description of public methods.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-data docutils literal notranslate"><span class="pre">func</span></code></a> - namespace which produces registered or ad-hoc <a class="reference internal" href="#sqlalchemy.sql.functions.Function" title="sqlalchemy.sql.functions.Function"><code class="xref py py-class docutils literal notranslate"><span class="pre">Function</span></code></a> instances.</p> <p><a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">GenericFunction</span></code></a> - allows creation of registered function types.</p> </div> <dl class="method"> <dt id="sqlalchemy.sql.functions.Function.__init__"> <code class="descname">__init__</code><span class="sig-paren">(</span><em>name</em>, <em>*clauses</em>, <em>**kw</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.Function.__init__" title="Permalink to this definition">¶</a></dt> <dd><p>Construct a <a class="reference internal" href="#sqlalchemy.sql.functions.Function" title="sqlalchemy.sql.functions.Function"><code class="xref py py-class docutils literal notranslate"><span class="pre">Function</span></code></a>.</p> <p>The <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-data docutils literal notranslate"><span class="pre">func</span></code></a> construct is normally used to construct new <a class="reference internal" href="#sqlalchemy.sql.functions.Function" title="sqlalchemy.sql.functions.Function"><code class="xref py py-class docutils literal notranslate"><span class="pre">Function</span></code></a> instances.</p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.FunctionElement"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">FunctionElement</code><span class="sig-paren">(</span><em>*clauses</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.Executable" title="sqlalchemy.sql.expression.Executable"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.expression.Executable</span></code></a>, <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.ColumnElement" title="sqlalchemy.sql.expression.ColumnElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.expression.ColumnElement</span></code></a>, <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.FromClause" title="sqlalchemy.sql.expression.FromClause"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.expression.FromClause</span></code></a></p> <p>Base for SQL function-oriented constructs.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="#sqlalchemy.sql.functions.Function" title="sqlalchemy.sql.functions.Function"><code class="xref py py-class docutils literal notranslate"><span class="pre">Function</span></code></a> - named SQL function.</p> <p><a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-data docutils literal notranslate"><span class="pre">func</span></code></a> - namespace which produces registered or ad-hoc <a class="reference internal" href="#sqlalchemy.sql.functions.Function" title="sqlalchemy.sql.functions.Function"><code class="xref py py-class docutils literal notranslate"><span class="pre">Function</span></code></a> instances.</p> <p><a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">GenericFunction</span></code></a> - allows creation of registered function types.</p> </div> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.__init__"> <code class="descname">__init__</code><span class="sig-paren">(</span><em>*clauses</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.__init__" title="Permalink to this definition">¶</a></dt> <dd><p>Construct a <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionElement</span></code></a>.</p> </dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.alias"> <code class="descname">alias</code><span class="sig-paren">(</span><em>name=None</em>, <em>flat=False</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.alias" title="Permalink to this definition">¶</a></dt> <dd><p>Produce a <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.Alias" title="sqlalchemy.sql.expression.Alias"><code class="xref py py-class docutils literal notranslate"><span class="pre">Alias</span></code></a> construct against this <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionElement</span></code></a>.</p> <p>This construct wraps the function in a named alias which is suitable for the FROM clause, in the style accepted for example by PostgreSQL.</p> <p>e.g.:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">sqlalchemy.sql</span> <span class="k">import</span> <span class="n">column</span> <span class="n">stmt</span> <span class="o">=</span> <span class="n">select</span><span class="p">([</span><span class="n">column</span><span class="p">(</span><span class="s1">'data_view'</span><span class="p">)])</span><span class="o">.</span>\ <span class="n">select_from</span><span class="p">(</span><span class="n">SomeTable</span><span class="p">)</span><span class="o">.</span>\ <span class="n">select_from</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">unnest</span><span class="p">(</span><span class="n">SomeTable</span><span class="o">.</span><span class="n">data</span><span class="p">)</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s1">'data_view'</span><span class="p">)</span> <span class="p">)</span></pre></div> </div> <p>Would produce:</p> <div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="k">SELECT</span> <span class="n">data_view</span> <span class="k">FROM</span> <span class="n">sometable</span><span class="p">,</span> <span class="k">unnest</span><span class="p">(</span><span class="n">sometable</span><span class="p">.</span><span class="k">data</span><span class="p">)</span> <span class="k">AS</span> <span class="n">data_view</span></pre></div> </div> <div class="versionadded"> <p><span class="versionmodified added">New in version 0.9.8: </span>The <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.alias" title="sqlalchemy.sql.functions.FunctionElement.alias"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FunctionElement.alias()</span></code></a> method is now supported. Previously, this method’s behavior was undefined and did not behave consistently across versions.</p> </div> </dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.FunctionElement.clauses"> <code class="descname">clauses</code><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.clauses" title="Permalink to this definition">¶</a></dt> <dd><p>Return the underlying <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.ClauseList" title="sqlalchemy.sql.expression.ClauseList"><code class="xref py py-class docutils literal notranslate"><span class="pre">ClauseList</span></code></a> which contains the arguments for this <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionElement</span></code></a>.</p> </dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.FunctionElement.columns"> <code class="descname">columns</code><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.columns" title="Permalink to this definition">¶</a></dt> <dd><p>The set of columns exported by this <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionElement</span></code></a>.</p> <p>Function objects currently have no result column names built in; this method returns a single-element column collection with an anonymously named column.</p> <p>An interim approach to providing named columns for a function as a FROM clause is to build a <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.select" title="sqlalchemy.sql.expression.select"><code class="xref py py-func docutils literal notranslate"><span class="pre">select()</span></code></a> with the desired columns:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">sqlalchemy.sql</span> <span class="k">import</span> <span class="n">column</span> <span class="n">stmt</span> <span class="o">=</span> <span class="n">select</span><span class="p">([</span><span class="n">column</span><span class="p">(</span><span class="s1">'x'</span><span class="p">),</span> <span class="n">column</span><span class="p">(</span><span class="s1">'y'</span><span class="p">)])</span><span class="o">.</span> <span class="n">select_from</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">myfunction</span><span class="p">())</span></pre></div> </div> </dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.execute"> <code class="descname">execute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.execute" title="Permalink to this definition">¶</a></dt> <dd><p>Execute this <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionElement</span></code></a> against an embedded ‘bind’.</p> <p>This first calls <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.select" title="sqlalchemy.sql.functions.FunctionElement.select"><code class="xref py py-meth docutils literal notranslate"><span class="pre">select()</span></code></a> to produce a SELECT construct.</p> <p>Note that <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionElement</span></code></a> can be passed to the <a class="reference internal" href="connections.html#sqlalchemy.engine.Connectable.execute" title="sqlalchemy.engine.Connectable.execute"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Connectable.execute()</span></code></a> method of <a class="reference internal" href="connections.html#sqlalchemy.engine.Connection" title="sqlalchemy.engine.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">Connection</span></code></a> or <a class="reference internal" href="connections.html#sqlalchemy.engine.Engine" title="sqlalchemy.engine.Engine"><code class="xref py py-class docutils literal notranslate"><span class="pre">Engine</span></code></a>.</p> </dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.filter"> <code class="descname">filter</code><span class="sig-paren">(</span><em>*criterion</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.filter" title="Permalink to this definition">¶</a></dt> <dd><p>Produce a FILTER clause against this function.</p> <p>Used against aggregate and window functions, for database backends that support the “FILTER” clause.</p> <p>The expression:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">func</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span></pre></div> </div> <p>is shorthand for:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">sqlalchemy</span> <span class="k">import</span> <span class="n">funcfilter</span> <span class="n">funcfilter</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="kc">True</span><span class="p">)</span></pre></div> </div> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.0.0.</span></p> </div> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.FunctionFilter" title="sqlalchemy.sql.expression.FunctionFilter"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionFilter</span></code></a></p> <p><a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.funcfilter" title="sqlalchemy.sql.expression.funcfilter"><code class="xref py py-func docutils literal notranslate"><span class="pre">funcfilter()</span></code></a></p> </div> </dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.get_children"> <code class="descname">get_children</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.get_children" title="Permalink to this definition">¶</a></dt> <dd><p>Return immediate child elements of this <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.ClauseElement" title="sqlalchemy.sql.expression.ClauseElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">ClauseElement</span></code></a>.</p> <p>This is used for visit traversal.</p> <p>**kwargs may contain flags that change the collection that is returned, for example to return a subset of items in order to cut down on larger traversals, or to return child items from a different context (such as schema-level collections instead of clause-level).</p> </dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.over"> <code class="descname">over</code><span class="sig-paren">(</span><em>partition_by=None</em>, <em>order_by=None</em>, <em>rows=None</em>, <em>range_=None</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.over" title="Permalink to this definition">¶</a></dt> <dd><p>Produce an OVER clause against this function.</p> <p>Used against aggregate or so-called “window” functions, for database backends that support window functions.</p> <p>The expression:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">func</span><span class="o">.</span><span class="n">row_number</span><span class="p">()</span><span class="o">.</span><span class="n">over</span><span class="p">(</span><span class="n">order_by</span><span class="o">=</span><span class="s1">'x'</span><span class="p">)</span></pre></div> </div> <p>is shorthand for:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">sqlalchemy</span> <span class="k">import</span> <span class="n">over</span> <span class="n">over</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">row_number</span><span class="p">(),</span> <span class="n">order_by</span><span class="o">=</span><span class="s1">'x'</span><span class="p">)</span></pre></div> </div> <p>See <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.over" title="sqlalchemy.sql.expression.over"><code class="xref py py-func docutils literal notranslate"><span class="pre">over()</span></code></a> for a full description.</p> </dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.FunctionElement.packagenames"> <code class="descname">packagenames</code><em class="property"> = ()</em><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.packagenames" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.scalar"> <code class="descname">scalar</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.scalar" title="Permalink to this definition">¶</a></dt> <dd><p>Execute this <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionElement</span></code></a> against an embedded ‘bind’ and return a scalar value.</p> <p>This first calls <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.select" title="sqlalchemy.sql.functions.FunctionElement.select"><code class="xref py py-meth docutils literal notranslate"><span class="pre">select()</span></code></a> to produce a SELECT construct.</p> <p>Note that <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionElement</span></code></a> can be passed to the <a class="reference internal" href="connections.html#sqlalchemy.engine.Connectable.scalar" title="sqlalchemy.engine.Connectable.scalar"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Connectable.scalar()</span></code></a> method of <a class="reference internal" href="connections.html#sqlalchemy.engine.Connection" title="sqlalchemy.engine.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">Connection</span></code></a> or <a class="reference internal" href="connections.html#sqlalchemy.engine.Engine" title="sqlalchemy.engine.Engine"><code class="xref py py-class docutils literal notranslate"><span class="pre">Engine</span></code></a>.</p> </dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.select"> <code class="descname">select</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.select" title="Permalink to this definition">¶</a></dt> <dd><p>Produce a <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.select" title="sqlalchemy.sql.expression.select"><code class="xref py py-func docutils literal notranslate"><span class="pre">select()</span></code></a> construct against this <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement" title="sqlalchemy.sql.functions.FunctionElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">FunctionElement</span></code></a>.</p> <p>This is shorthand for:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s</span> <span class="o">=</span> <span class="n">select</span><span class="p">([</span><span class="n">function_element</span><span class="p">])</span></pre></div> </div> </dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.self_group"> <code class="descname">self_group</code><span class="sig-paren">(</span><em>against=None</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.self_group" title="Permalink to this definition">¶</a></dt> <dd><p>Apply a ‘grouping’ to this <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.ClauseElement" title="sqlalchemy.sql.expression.ClauseElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">ClauseElement</span></code></a>.</p> <p>This method is overridden by subclasses to return a “grouping” construct, i.e. parenthesis. In particular it’s used by “binary” expressions to provide a grouping around themselves when placed into a larger expression, as well as by <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.select" title="sqlalchemy.sql.expression.select"><code class="xref py py-func docutils literal notranslate"><span class="pre">select()</span></code></a> constructs when placed into the FROM clause of another <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.select" title="sqlalchemy.sql.expression.select"><code class="xref py py-func docutils literal notranslate"><span class="pre">select()</span></code></a>. (Note that subqueries should be normally created using the <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.Select.alias" title="sqlalchemy.sql.expression.Select.alias"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Select.alias()</span></code></a> method, as many platforms require nested SELECT statements to be named).</p> <p>As expressions are composed together, the application of <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.self_group" title="sqlalchemy.sql.functions.FunctionElement.self_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">self_group()</span></code></a> is automatic - end-user code should never need to use this method directly. Note that SQLAlchemy’s clause constructs take operator precedence into account - so parenthesis might not be needed, for example, in an expression like <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">OR</span> <span class="pre">(y</span> <span class="pre">AND</span> <span class="pre">z)</span></code> - AND takes precedence over OR.</p> <p>The base <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.self_group" title="sqlalchemy.sql.functions.FunctionElement.self_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">self_group()</span></code></a> method of <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.ClauseElement" title="sqlalchemy.sql.expression.ClauseElement"><code class="xref py py-class docutils literal notranslate"><span class="pre">ClauseElement</span></code></a> just returns self.</p> </dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.within_group"> <code class="descname">within_group</code><span class="sig-paren">(</span><em>*order_by</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.within_group" title="Permalink to this definition">¶</a></dt> <dd><p>Produce a WITHIN GROUP (ORDER BY expr) clause against this function.</p> <p>Used against so-called “ordered set aggregate” and “hypothetical set aggregate” functions, including <a class="reference internal" href="#sqlalchemy.sql.functions.percentile_cont" title="sqlalchemy.sql.functions.percentile_cont"><code class="xref py py-class docutils literal notranslate"><span class="pre">percentile_cont</span></code></a>, <a class="reference internal" href="#sqlalchemy.sql.functions.rank" title="sqlalchemy.sql.functions.rank"><code class="xref py py-class docutils literal notranslate"><span class="pre">rank</span></code></a>, <a class="reference internal" href="#sqlalchemy.sql.functions.dense_rank" title="sqlalchemy.sql.functions.dense_rank"><code class="xref py py-class docutils literal notranslate"><span class="pre">dense_rank</span></code></a>, etc.</p> <p>See <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.within_group" title="sqlalchemy.sql.expression.within_group"><code class="xref py py-func docutils literal notranslate"><span class="pre">within_group()</span></code></a> for a full description.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.1.</span></p> </div> </dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.FunctionElement.within_group_type"> <code class="descname">within_group_type</code><span class="sig-paren">(</span><em>within_group</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.FunctionElement.within_group_type" title="Permalink to this definition">¶</a></dt> <dd><p>For types that define their return type as based on the criteria within a WITHIN GROUP (ORDER BY) expression, called by the <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.WithinGroup" title="sqlalchemy.sql.expression.WithinGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">WithinGroup</span></code></a> construct.</p> <p>Returns None by default, in which case the function’s normal <code class="docutils literal notranslate"><span class="pre">.type</span></code> is used.</p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.GenericFunction"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">GenericFunction</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.GenericFunction" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.Function" title="sqlalchemy.sql.functions.Function"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.Function</span></code></a></p> <p>Define a ‘generic’ function.</p> <p>A generic function is a pre-established <a class="reference internal" href="#sqlalchemy.sql.functions.Function" title="sqlalchemy.sql.functions.Function"><code class="xref py py-class docutils literal notranslate"><span class="pre">Function</span></code></a> class that is instantiated automatically when called by name from the <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-data docutils literal notranslate"><span class="pre">func</span></code></a> attribute. Note that calling any name from <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-data docutils literal notranslate"><span class="pre">func</span></code></a> has the effect that a new <a class="reference internal" href="#sqlalchemy.sql.functions.Function" title="sqlalchemy.sql.functions.Function"><code class="xref py py-class docutils literal notranslate"><span class="pre">Function</span></code></a> instance is created automatically, given that name. The primary use case for defining a <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">GenericFunction</span></code></a> class is so that a function of a particular name may be given a fixed return type. It can also include custom argument parsing schemes as well as additional methods.</p> <p>Subclasses of <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">GenericFunction</span></code></a> are automatically registered under the name of the class. For example, a user-defined function <code class="docutils literal notranslate"><span class="pre">as_utc()</span></code> would be available immediately:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">sqlalchemy.sql.functions</span> <span class="k">import</span> <span class="n">GenericFunction</span> <span class="kn">from</span> <span class="nn">sqlalchemy.types</span> <span class="k">import</span> <span class="n">DateTime</span> <span class="k">class</span> <span class="nc">as_utc</span><span class="p">(</span><span class="n">GenericFunction</span><span class="p">):</span> <span class="nb">type</span> <span class="o">=</span> <span class="n">DateTime</span> <span class="nb">print</span> <span class="n">select</span><span class="p">([</span><span class="n">func</span><span class="o">.</span><span class="n">as_utc</span><span class="p">()])</span></pre></div> </div> <p>User-defined generic functions can be organized into packages by specifying the “package” attribute when defining <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">GenericFunction</span></code></a>. Third party libraries containing many functions may want to use this in order to avoid name conflicts with other systems. For example, if our <code class="docutils literal notranslate"><span class="pre">as_utc()</span></code> function were part of a package “time”:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">as_utc</span><span class="p">(</span><span class="n">GenericFunction</span><span class="p">):</span> <span class="nb">type</span> <span class="o">=</span> <span class="n">DateTime</span> <span class="n">package</span> <span class="o">=</span> <span class="s2">"time"</span></pre></div> </div> <p>The above function would be available from <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-data docutils literal notranslate"><span class="pre">func</span></code></a> using the package name <code class="docutils literal notranslate"><span class="pre">time</span></code>:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">print</span> <span class="n">select</span><span class="p">([</span><span class="n">func</span><span class="o">.</span><span class="n">time</span><span class="o">.</span><span class="n">as_utc</span><span class="p">()])</span></pre></div> </div> <p>A final option is to allow the function to be accessed from one name in <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-data docutils literal notranslate"><span class="pre">func</span></code></a> but to render as a different name. The <code class="docutils literal notranslate"><span class="pre">identifier</span></code> attribute will override the name used to access the function as loaded from <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-data docutils literal notranslate"><span class="pre">func</span></code></a>, but will retain the usage of <code class="docutils literal notranslate"><span class="pre">name</span></code> as the rendered name:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">GeoBuffer</span><span class="p">(</span><span class="n">GenericFunction</span><span class="p">):</span> <span class="nb">type</span> <span class="o">=</span> <span class="n">Geometry</span> <span class="n">package</span> <span class="o">=</span> <span class="s2">"geo"</span> <span class="n">name</span> <span class="o">=</span> <span class="s2">"ST_Buffer"</span> <span class="n">identifier</span> <span class="o">=</span> <span class="s2">"buffer"</span></pre></div> </div> <p>The above function will render as follows:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="nb">print</span> <span class="n">func</span><span class="o">.</span><span class="n">geo</span><span class="o">.</span><span class="n">buffer</span><span class="p">()</span> <span class="go">ST_Buffer()</span></pre></div> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.GenericFunction.coerce_arguments"> <code class="descname">coerce_arguments</code><em class="property"> = True</em><a class="headerlink" href="#sqlalchemy.sql.functions.GenericFunction.coerce_arguments" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.GenericFunction.identifier"> <code class="descname">identifier</code><em class="property"> = 'GenericFunction'</em><a class="headerlink" href="#sqlalchemy.sql.functions.GenericFunction.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.GenericFunction.name"> <code class="descname">name</code><em class="property"> = 'GenericFunction'</em><a class="headerlink" href="#sqlalchemy.sql.functions.GenericFunction.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.OrderedSetAgg"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">OrderedSetAgg</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.OrderedSetAgg" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>Define a function where the return type is based on the sort expression type as defined by the expression passed to the <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.within_group" title="sqlalchemy.sql.functions.FunctionElement.within_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FunctionElement.within_group()</span></code></a> method.</p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.OrderedSetAgg.array_for_multi_clause"> <code class="descname">array_for_multi_clause</code><em class="property"> = False</em><a class="headerlink" href="#sqlalchemy.sql.functions.OrderedSetAgg.array_for_multi_clause" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.OrderedSetAgg.identifier"> <code class="descname">identifier</code><em class="property"> = 'OrderedSetAgg'</em><a class="headerlink" href="#sqlalchemy.sql.functions.OrderedSetAgg.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.OrderedSetAgg.name"> <code class="descname">name</code><em class="property"> = 'OrderedSetAgg'</em><a class="headerlink" href="#sqlalchemy.sql.functions.OrderedSetAgg.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="method"> <dt id="sqlalchemy.sql.functions.OrderedSetAgg.within_group_type"> <code class="descname">within_group_type</code><span class="sig-paren">(</span><em>within_group</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.OrderedSetAgg.within_group_type" title="Permalink to this definition">¶</a></dt> <dd><p>For types that define their return type as based on the criteria within a WITHIN GROUP (ORDER BY) expression, called by the <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.WithinGroup" title="sqlalchemy.sql.expression.WithinGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">WithinGroup</span></code></a> construct.</p> <p>Returns None by default, in which case the function’s normal <code class="docutils literal notranslate"><span class="pre">.type</span></code> is used.</p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.ReturnTypeFromArgs"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">ReturnTypeFromArgs</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.ReturnTypeFromArgs" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>Define a function whose return type is the same as its arguments.</p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.ReturnTypeFromArgs.identifier"> <code class="descname">identifier</code><em class="property"> = 'ReturnTypeFromArgs'</em><a class="headerlink" href="#sqlalchemy.sql.functions.ReturnTypeFromArgs.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.ReturnTypeFromArgs.name"> <code class="descname">name</code><em class="property"> = 'ReturnTypeFromArgs'</em><a class="headerlink" href="#sqlalchemy.sql.functions.ReturnTypeFromArgs.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.array_agg"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">array_agg</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.array_agg" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>support for the ARRAY_AGG function.</p> <p>The <code class="docutils literal notranslate"><span class="pre">func.array_agg(expr)</span></code> construct returns an expression of type <a class="reference internal" href="type_basics.html#sqlalchemy.types.ARRAY" title="sqlalchemy.types.ARRAY"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.ARRAY</span></code></a>.</p> <p>e.g.:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">stmt</span> <span class="o">=</span> <span class="n">select</span><span class="p">([</span><span class="n">func</span><span class="o">.</span><span class="n">array_agg</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">values</span><span class="p">)[</span><span class="mi">2</span><span class="p">:</span><span class="mi">5</span><span class="p">]])</span></pre></div> </div> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.1.</span></p> </div> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../dialects/postgresql.html#sqlalchemy.dialects.postgresql.array_agg" title="sqlalchemy.dialects.postgresql.array_agg"><code class="xref py py-func docutils literal notranslate"><span class="pre">postgresql.array_agg()</span></code></a> - PostgreSQL-specific version that returns <a class="reference internal" href="../dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY" title="sqlalchemy.dialects.postgresql.ARRAY"><code class="xref py py-class docutils literal notranslate"><span class="pre">postgresql.ARRAY</span></code></a>, which has PG-specific operators added.</p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.array_agg.identifier"> <code class="descname">identifier</code><em class="property"> = 'array_agg'</em><a class="headerlink" href="#sqlalchemy.sql.functions.array_agg.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.array_agg.name"> <code class="descname">name</code><em class="property"> = 'array_agg'</em><a class="headerlink" href="#sqlalchemy.sql.functions.array_agg.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.array_agg.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.array_agg.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.ARRAY</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.char_length"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">char_length</code><span class="sig-paren">(</span><em>arg</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.char_length" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.char_length.identifier"> <code class="descname">identifier</code><em class="property"> = 'char_length'</em><a class="headerlink" href="#sqlalchemy.sql.functions.char_length.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.char_length.name"> <code class="descname">name</code><em class="property"> = 'char_length'</em><a class="headerlink" href="#sqlalchemy.sql.functions.char_length.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.char_length.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.char_length.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.Integer</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.coalesce"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">coalesce</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.coalesce" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.ReturnTypeFromArgs" title="sqlalchemy.sql.functions.ReturnTypeFromArgs"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.ReturnTypeFromArgs</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.coalesce.identifier"> <code class="descname">identifier</code><em class="property"> = 'coalesce'</em><a class="headerlink" href="#sqlalchemy.sql.functions.coalesce.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.coalesce.name"> <code class="descname">name</code><em class="property"> = 'coalesce'</em><a class="headerlink" href="#sqlalchemy.sql.functions.coalesce.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.concat"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">concat</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.concat" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.concat.identifier"> <code class="descname">identifier</code><em class="property"> = 'concat'</em><a class="headerlink" href="#sqlalchemy.sql.functions.concat.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.concat.name"> <code class="descname">name</code><em class="property"> = 'concat'</em><a class="headerlink" href="#sqlalchemy.sql.functions.concat.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.concat.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.concat.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.String</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.count"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">count</code><span class="sig-paren">(</span><em>expression=None</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.count" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>The ANSI COUNT aggregate function. With no arguments, emits COUNT *.</p> <p>E.g.:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">sqlalchemy</span> <span class="k">import</span> <span class="n">func</span> <span class="kn">from</span> <span class="nn">sqlalchemy</span> <span class="k">import</span> <span class="n">select</span> <span class="kn">from</span> <span class="nn">sqlalchemy</span> <span class="k">import</span> <span class="n">table</span><span class="p">,</span> <span class="n">column</span> <span class="n">my_table</span> <span class="o">=</span> <span class="n">table</span><span class="p">(</span><span class="s1">'some_table'</span><span class="p">,</span> <span class="n">column</span><span class="p">(</span><span class="s1">'id'</span><span class="p">))</span> <span class="n">stmt</span> <span class="o">=</span> <span class="n">select</span><span class="p">([</span><span class="n">func</span><span class="o">.</span><span class="n">count</span><span class="p">()])</span><span class="o">.</span><span class="n">select_from</span><span class="p">(</span><span class="n">my_table</span><span class="p">)</span></pre></div> </div> <p>Executing <code class="docutils literal notranslate"><span class="pre">stmt</span></code> would emit:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">SELECT</span> <span class="n">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="n">AS</span> <span class="n">count_1</span> <span class="n">FROM</span> <span class="n">some_table</span></pre></div> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.count.identifier"> <code class="descname">identifier</code><em class="property"> = 'count'</em><a class="headerlink" href="#sqlalchemy.sql.functions.count.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.count.name"> <code class="descname">name</code><em class="property"> = 'count'</em><a class="headerlink" href="#sqlalchemy.sql.functions.count.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.count.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.count.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.Integer</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.cube"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">cube</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.cube" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>Implement the <code class="docutils literal notranslate"><span class="pre">CUBE</span></code> grouping operation.</p> <p>This function is used as part of the GROUP BY of a statement, e.g. <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.Select.group_by" title="sqlalchemy.sql.expression.Select.group_by"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Select.group_by()</span></code></a>:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">stmt</span> <span class="o">=</span> <span class="n">select</span><span class="p">(</span> <span class="p">[</span><span class="n">func</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">value</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_1</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_2</span><span class="p">]</span> <span class="p">)</span><span class="o">.</span><span class="n">group_by</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">cube</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_1</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_2</span><span class="p">))</span></pre></div> </div> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.2.</span></p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.cube.identifier"> <code class="descname">identifier</code><em class="property"> = 'cube'</em><a class="headerlink" href="#sqlalchemy.sql.functions.cube.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.cube.name"> <code class="descname">name</code><em class="property"> = 'cube'</em><a class="headerlink" href="#sqlalchemy.sql.functions.cube.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.cume_dist"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">cume_dist</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.cume_dist" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>Implement the <code class="docutils literal notranslate"><span class="pre">cume_dist</span></code> hypothetical-set aggregate function.</p> <p>This function must be used with the <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.within_group" title="sqlalchemy.sql.functions.FunctionElement.within_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FunctionElement.within_group()</span></code></a> modifier to supply a sort expression to operate upon.</p> <p>The return type of this function is <a class="reference internal" href="type_basics.html#sqlalchemy.types.Numeric" title="sqlalchemy.types.Numeric"><code class="xref py py-class docutils literal notranslate"><span class="pre">Numeric</span></code></a>.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.1.</span></p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.cume_dist.identifier"> <code class="descname">identifier</code><em class="property"> = 'cume_dist'</em><a class="headerlink" href="#sqlalchemy.sql.functions.cume_dist.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.cume_dist.name"> <code class="descname">name</code><em class="property"> = 'cume_dist'</em><a class="headerlink" href="#sqlalchemy.sql.functions.cume_dist.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.cume_dist.type"> <code class="descname">type</code><em class="property"> = Numeric()</em><a class="headerlink" href="#sqlalchemy.sql.functions.cume_dist.type" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.current_date"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">current_date</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.current_date" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.AnsiFunction" title="sqlalchemy.sql.functions.AnsiFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.AnsiFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_date.identifier"> <code class="descname">identifier</code><em class="property"> = 'current_date'</em><a class="headerlink" href="#sqlalchemy.sql.functions.current_date.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_date.name"> <code class="descname">name</code><em class="property"> = 'current_date'</em><a class="headerlink" href="#sqlalchemy.sql.functions.current_date.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_date.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.current_date.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.Date</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.current_time"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">current_time</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.current_time" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.AnsiFunction" title="sqlalchemy.sql.functions.AnsiFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.AnsiFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_time.identifier"> <code class="descname">identifier</code><em class="property"> = 'current_time'</em><a class="headerlink" href="#sqlalchemy.sql.functions.current_time.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_time.name"> <code class="descname">name</code><em class="property"> = 'current_time'</em><a class="headerlink" href="#sqlalchemy.sql.functions.current_time.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_time.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.current_time.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.Time</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.current_timestamp"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">current_timestamp</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.current_timestamp" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.AnsiFunction" title="sqlalchemy.sql.functions.AnsiFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.AnsiFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_timestamp.identifier"> <code class="descname">identifier</code><em class="property"> = 'current_timestamp'</em><a class="headerlink" href="#sqlalchemy.sql.functions.current_timestamp.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_timestamp.name"> <code class="descname">name</code><em class="property"> = 'current_timestamp'</em><a class="headerlink" href="#sqlalchemy.sql.functions.current_timestamp.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_timestamp.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.current_timestamp.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.DateTime</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.current_user"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">current_user</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.current_user" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.AnsiFunction" title="sqlalchemy.sql.functions.AnsiFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.AnsiFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_user.identifier"> <code class="descname">identifier</code><em class="property"> = 'current_user'</em><a class="headerlink" href="#sqlalchemy.sql.functions.current_user.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_user.name"> <code class="descname">name</code><em class="property"> = 'current_user'</em><a class="headerlink" href="#sqlalchemy.sql.functions.current_user.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.current_user.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.current_user.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.String</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.dense_rank"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">dense_rank</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.dense_rank" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>Implement the <code class="docutils literal notranslate"><span class="pre">dense_rank</span></code> hypothetical-set aggregate function.</p> <p>This function must be used with the <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.within_group" title="sqlalchemy.sql.functions.FunctionElement.within_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FunctionElement.within_group()</span></code></a> modifier to supply a sort expression to operate upon.</p> <p>The return type of this function is <a class="reference internal" href="type_basics.html#sqlalchemy.types.Integer" title="sqlalchemy.types.Integer"><code class="xref py py-class docutils literal notranslate"><span class="pre">Integer</span></code></a>.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.1.</span></p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.dense_rank.identifier"> <code class="descname">identifier</code><em class="property"> = 'dense_rank'</em><a class="headerlink" href="#sqlalchemy.sql.functions.dense_rank.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.dense_rank.name"> <code class="descname">name</code><em class="property"> = 'dense_rank'</em><a class="headerlink" href="#sqlalchemy.sql.functions.dense_rank.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.dense_rank.type"> <code class="descname">type</code><em class="property"> = Integer()</em><a class="headerlink" href="#sqlalchemy.sql.functions.dense_rank.type" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.grouping_sets"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">grouping_sets</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.grouping_sets" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>Implement the <code class="docutils literal notranslate"><span class="pre">GROUPING</span> <span class="pre">SETS</span></code> grouping operation.</p> <p>This function is used as part of the GROUP BY of a statement, e.g. <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.Select.group_by" title="sqlalchemy.sql.expression.Select.group_by"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Select.group_by()</span></code></a>:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">stmt</span> <span class="o">=</span> <span class="n">select</span><span class="p">(</span> <span class="p">[</span><span class="n">func</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">value</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_1</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_2</span><span class="p">]</span> <span class="p">)</span><span class="o">.</span><span class="n">group_by</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">grouping_sets</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_1</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_2</span><span class="p">))</span></pre></div> </div> <p>In order to group by multiple sets, use the <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.tuple_" title="sqlalchemy.sql.expression.tuple_"><code class="xref py py-func docutils literal notranslate"><span class="pre">tuple_()</span></code></a> construct:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">sqlalchemy</span> <span class="k">import</span> <span class="n">tuple_</span> <span class="n">stmt</span> <span class="o">=</span> <span class="n">select</span><span class="p">(</span> <span class="p">[</span> <span class="n">func</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">value</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_1</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_2</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_3</span><span class="p">]</span> <span class="p">)</span><span class="o">.</span><span class="n">group_by</span><span class="p">(</span> <span class="n">func</span><span class="o">.</span><span class="n">grouping_sets</span><span class="p">(</span> <span class="n">tuple_</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_1</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_2</span><span class="p">),</span> <span class="n">tuple_</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_3</span><span class="p">),</span> <span class="p">)</span> <span class="p">)</span></pre></div> </div> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.2.</span></p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.grouping_sets.identifier"> <code class="descname">identifier</code><em class="property"> = 'grouping_sets'</em><a class="headerlink" href="#sqlalchemy.sql.functions.grouping_sets.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.grouping_sets.name"> <code class="descname">name</code><em class="property"> = 'grouping_sets'</em><a class="headerlink" href="#sqlalchemy.sql.functions.grouping_sets.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.localtime"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">localtime</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.localtime" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.AnsiFunction" title="sqlalchemy.sql.functions.AnsiFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.AnsiFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.localtime.identifier"> <code class="descname">identifier</code><em class="property"> = 'localtime'</em><a class="headerlink" href="#sqlalchemy.sql.functions.localtime.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.localtime.name"> <code class="descname">name</code><em class="property"> = 'localtime'</em><a class="headerlink" href="#sqlalchemy.sql.functions.localtime.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.localtime.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.localtime.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.DateTime</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.localtimestamp"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">localtimestamp</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.localtimestamp" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.AnsiFunction" title="sqlalchemy.sql.functions.AnsiFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.AnsiFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.localtimestamp.identifier"> <code class="descname">identifier</code><em class="property"> = 'localtimestamp'</em><a class="headerlink" href="#sqlalchemy.sql.functions.localtimestamp.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.localtimestamp.name"> <code class="descname">name</code><em class="property"> = 'localtimestamp'</em><a class="headerlink" href="#sqlalchemy.sql.functions.localtimestamp.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.localtimestamp.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.localtimestamp.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.DateTime</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.max"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">max</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.max" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.ReturnTypeFromArgs" title="sqlalchemy.sql.functions.ReturnTypeFromArgs"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.ReturnTypeFromArgs</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.max.identifier"> <code class="descname">identifier</code><em class="property"> = 'max'</em><a class="headerlink" href="#sqlalchemy.sql.functions.max.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.max.name"> <code class="descname">name</code><em class="property"> = 'max'</em><a class="headerlink" href="#sqlalchemy.sql.functions.max.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.min"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">min</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.min" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.ReturnTypeFromArgs" title="sqlalchemy.sql.functions.ReturnTypeFromArgs"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.ReturnTypeFromArgs</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.min.identifier"> <code class="descname">identifier</code><em class="property"> = 'min'</em><a class="headerlink" href="#sqlalchemy.sql.functions.min.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.min.name"> <code class="descname">name</code><em class="property"> = 'min'</em><a class="headerlink" href="#sqlalchemy.sql.functions.min.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.mode"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">mode</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.mode" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.OrderedSetAgg" title="sqlalchemy.sql.functions.OrderedSetAgg"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.OrderedSetAgg</span></code></a></p> <p>implement the <code class="docutils literal notranslate"><span class="pre">mode</span></code> ordered-set aggregate function.</p> <p>This function must be used with the <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.within_group" title="sqlalchemy.sql.functions.FunctionElement.within_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FunctionElement.within_group()</span></code></a> modifier to supply a sort expression to operate upon.</p> <p>The return type of this function is the same as the sort expression.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.1.</span></p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.mode.identifier"> <code class="descname">identifier</code><em class="property"> = 'mode'</em><a class="headerlink" href="#sqlalchemy.sql.functions.mode.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.mode.name"> <code class="descname">name</code><em class="property"> = 'mode'</em><a class="headerlink" href="#sqlalchemy.sql.functions.mode.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.next_value"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">next_value</code><span class="sig-paren">(</span><em>seq</em>, <em>**kw</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.next_value" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>Represent the ‘next value’, given a <a class="reference internal" href="defaults.html#sqlalchemy.schema.Sequence" title="sqlalchemy.schema.Sequence"><code class="xref py py-class docutils literal notranslate"><span class="pre">Sequence</span></code></a> as its single argument.</p> <p>Compiles into the appropriate function on each backend, or will raise NotImplementedError if used on a backend that does not provide support for sequences.</p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.next_value.identifier"> <code class="descname">identifier</code><em class="property"> = 'next_value'</em><a class="headerlink" href="#sqlalchemy.sql.functions.next_value.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.next_value.name"> <code class="descname">name</code><em class="property"> = 'next_value'</em><a class="headerlink" href="#sqlalchemy.sql.functions.next_value.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.next_value.type"> <code class="descname">type</code><em class="property"> = Integer()</em><a class="headerlink" href="#sqlalchemy.sql.functions.next_value.type" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.now"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">now</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.now" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.now.identifier"> <code class="descname">identifier</code><em class="property"> = 'now'</em><a class="headerlink" href="#sqlalchemy.sql.functions.now.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.now.name"> <code class="descname">name</code><em class="property"> = 'now'</em><a class="headerlink" href="#sqlalchemy.sql.functions.now.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.now.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.now.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.DateTime</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.percent_rank"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">percent_rank</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.percent_rank" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>Implement the <code class="docutils literal notranslate"><span class="pre">percent_rank</span></code> hypothetical-set aggregate function.</p> <p>This function must be used with the <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.within_group" title="sqlalchemy.sql.functions.FunctionElement.within_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FunctionElement.within_group()</span></code></a> modifier to supply a sort expression to operate upon.</p> <p>The return type of this function is <a class="reference internal" href="type_basics.html#sqlalchemy.types.Numeric" title="sqlalchemy.types.Numeric"><code class="xref py py-class docutils literal notranslate"><span class="pre">Numeric</span></code></a>.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.1.</span></p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.percent_rank.identifier"> <code class="descname">identifier</code><em class="property"> = 'percent_rank'</em><a class="headerlink" href="#sqlalchemy.sql.functions.percent_rank.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.percent_rank.name"> <code class="descname">name</code><em class="property"> = 'percent_rank'</em><a class="headerlink" href="#sqlalchemy.sql.functions.percent_rank.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.percent_rank.type"> <code class="descname">type</code><em class="property"> = Numeric()</em><a class="headerlink" href="#sqlalchemy.sql.functions.percent_rank.type" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.percentile_cont"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">percentile_cont</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.percentile_cont" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.OrderedSetAgg" title="sqlalchemy.sql.functions.OrderedSetAgg"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.OrderedSetAgg</span></code></a></p> <p>implement the <code class="docutils literal notranslate"><span class="pre">percentile_cont</span></code> ordered-set aggregate function.</p> <p>This function must be used with the <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.within_group" title="sqlalchemy.sql.functions.FunctionElement.within_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FunctionElement.within_group()</span></code></a> modifier to supply a sort expression to operate upon.</p> <p>The return type of this function is the same as the sort expression, or if the arguments are an array, an <a class="reference internal" href="type_basics.html#sqlalchemy.types.ARRAY" title="sqlalchemy.types.ARRAY"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.ARRAY</span></code></a> of the sort expression’s type.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.1.</span></p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.percentile_cont.array_for_multi_clause"> <code class="descname">array_for_multi_clause</code><em class="property"> = True</em><a class="headerlink" href="#sqlalchemy.sql.functions.percentile_cont.array_for_multi_clause" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.percentile_cont.identifier"> <code class="descname">identifier</code><em class="property"> = 'percentile_cont'</em><a class="headerlink" href="#sqlalchemy.sql.functions.percentile_cont.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.percentile_cont.name"> <code class="descname">name</code><em class="property"> = 'percentile_cont'</em><a class="headerlink" href="#sqlalchemy.sql.functions.percentile_cont.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.percentile_disc"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">percentile_disc</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.percentile_disc" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.OrderedSetAgg" title="sqlalchemy.sql.functions.OrderedSetAgg"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.OrderedSetAgg</span></code></a></p> <p>implement the <code class="docutils literal notranslate"><span class="pre">percentile_disc</span></code> ordered-set aggregate function.</p> <p>This function must be used with the <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.within_group" title="sqlalchemy.sql.functions.FunctionElement.within_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FunctionElement.within_group()</span></code></a> modifier to supply a sort expression to operate upon.</p> <p>The return type of this function is the same as the sort expression, or if the arguments are an array, an <a class="reference internal" href="type_basics.html#sqlalchemy.types.ARRAY" title="sqlalchemy.types.ARRAY"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.ARRAY</span></code></a> of the sort expression’s type.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.1.</span></p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.percentile_disc.array_for_multi_clause"> <code class="descname">array_for_multi_clause</code><em class="property"> = True</em><a class="headerlink" href="#sqlalchemy.sql.functions.percentile_disc.array_for_multi_clause" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.percentile_disc.identifier"> <code class="descname">identifier</code><em class="property"> = 'percentile_disc'</em><a class="headerlink" href="#sqlalchemy.sql.functions.percentile_disc.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.percentile_disc.name"> <code class="descname">name</code><em class="property"> = 'percentile_disc'</em><a class="headerlink" href="#sqlalchemy.sql.functions.percentile_disc.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.random"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">random</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.random" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.random.identifier"> <code class="descname">identifier</code><em class="property"> = 'random'</em><a class="headerlink" href="#sqlalchemy.sql.functions.random.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.random.name"> <code class="descname">name</code><em class="property"> = 'random'</em><a class="headerlink" href="#sqlalchemy.sql.functions.random.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.rank"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">rank</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.rank" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>Implement the <code class="docutils literal notranslate"><span class="pre">rank</span></code> hypothetical-set aggregate function.</p> <p>This function must be used with the <a class="reference internal" href="#sqlalchemy.sql.functions.FunctionElement.within_group" title="sqlalchemy.sql.functions.FunctionElement.within_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">FunctionElement.within_group()</span></code></a> modifier to supply a sort expression to operate upon.</p> <p>The return type of this function is <a class="reference internal" href="type_basics.html#sqlalchemy.types.Integer" title="sqlalchemy.types.Integer"><code class="xref py py-class docutils literal notranslate"><span class="pre">Integer</span></code></a>.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.1.</span></p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.rank.identifier"> <code class="descname">identifier</code><em class="property"> = 'rank'</em><a class="headerlink" href="#sqlalchemy.sql.functions.rank.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.rank.name"> <code class="descname">name</code><em class="property"> = 'rank'</em><a class="headerlink" href="#sqlalchemy.sql.functions.rank.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.rank.type"> <code class="descname">type</code><em class="property"> = Integer()</em><a class="headerlink" href="#sqlalchemy.sql.functions.rank.type" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="function"> <dt id="sqlalchemy.sql.functions.register_function"> <code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">register_function</code><span class="sig-paren">(</span><em>identifier</em>, <em>fn</em>, <em>package='_default'</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.register_function" title="Permalink to this definition">¶</a></dt> <dd><p>Associate a callable with a particular func. name.</p> <p>This is normally called by _GenericMeta, but is also available by itself so that a non-Function construct can be associated with the <a class="reference internal" href="sqlelement.html#sqlalchemy.sql.expression.func" title="sqlalchemy.sql.expression.func"><code class="xref py py-data docutils literal notranslate"><span class="pre">func</span></code></a> accessor (i.e. CAST, EXTRACT).</p> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.rollup"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">rollup</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.rollup" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.GenericFunction" title="sqlalchemy.sql.functions.GenericFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.GenericFunction</span></code></a></p> <p>Implement the <code class="docutils literal notranslate"><span class="pre">ROLLUP</span></code> grouping operation.</p> <p>This function is used as part of the GROUP BY of a statement, e.g. <a class="reference internal" href="selectable.html#sqlalchemy.sql.expression.Select.group_by" title="sqlalchemy.sql.expression.Select.group_by"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Select.group_by()</span></code></a>:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">stmt</span> <span class="o">=</span> <span class="n">select</span><span class="p">(</span> <span class="p">[</span><span class="n">func</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">value</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_1</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_2</span><span class="p">]</span> <span class="p">)</span><span class="o">.</span><span class="n">group_by</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">rollup</span><span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_1</span><span class="p">,</span> <span class="n">table</span><span class="o">.</span><span class="n">c</span><span class="o">.</span><span class="n">col_2</span><span class="p">))</span></pre></div> </div> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.2.</span></p> </div> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.rollup.identifier"> <code class="descname">identifier</code><em class="property"> = 'rollup'</em><a class="headerlink" href="#sqlalchemy.sql.functions.rollup.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.rollup.name"> <code class="descname">name</code><em class="property"> = 'rollup'</em><a class="headerlink" href="#sqlalchemy.sql.functions.rollup.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.session_user"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">session_user</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.session_user" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.AnsiFunction" title="sqlalchemy.sql.functions.AnsiFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.AnsiFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.session_user.identifier"> <code class="descname">identifier</code><em class="property"> = 'session_user'</em><a class="headerlink" href="#sqlalchemy.sql.functions.session_user.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.session_user.name"> <code class="descname">name</code><em class="property"> = 'session_user'</em><a class="headerlink" href="#sqlalchemy.sql.functions.session_user.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.session_user.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.session_user.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.String</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.sum"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">sum</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.sum" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.ReturnTypeFromArgs" title="sqlalchemy.sql.functions.ReturnTypeFromArgs"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.ReturnTypeFromArgs</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.sum.identifier"> <code class="descname">identifier</code><em class="property"> = 'sum'</em><a class="headerlink" href="#sqlalchemy.sql.functions.sum.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.sum.name"> <code class="descname">name</code><em class="property"> = 'sum'</em><a class="headerlink" href="#sqlalchemy.sql.functions.sum.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.sysdate"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">sysdate</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.sysdate" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.AnsiFunction" title="sqlalchemy.sql.functions.AnsiFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.AnsiFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.sysdate.identifier"> <code class="descname">identifier</code><em class="property"> = 'sysdate'</em><a class="headerlink" href="#sqlalchemy.sql.functions.sysdate.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.sysdate.name"> <code class="descname">name</code><em class="property"> = 'sysdate'</em><a class="headerlink" href="#sqlalchemy.sql.functions.sysdate.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.sysdate.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.sysdate.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.DateTime</span></code></p> </dd></dl> </dd></dl> <dl class="class"> <dt id="sqlalchemy.sql.functions.user"> <em class="property">class </em><code class="descclassname">sqlalchemy.sql.functions.</code><code class="descname">user</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#sqlalchemy.sql.functions.user" title="Permalink to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#sqlalchemy.sql.functions.AnsiFunction" title="sqlalchemy.sql.functions.AnsiFunction"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.functions.AnsiFunction</span></code></a></p> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.user.identifier"> <code class="descname">identifier</code><em class="property"> = 'user'</em><a class="headerlink" href="#sqlalchemy.sql.functions.user.identifier" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.user.name"> <code class="descname">name</code><em class="property"> = 'user'</em><a class="headerlink" href="#sqlalchemy.sql.functions.user.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="attribute"> <dt id="sqlalchemy.sql.functions.user.type"> <code class="descname">type</code><a class="headerlink" href="#sqlalchemy.sql.functions.user.type" title="Permalink to this definition">¶</a></dt> <dd><p>alias of <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlalchemy.sql.sqltypes.String</span></code></p> </dd></dl> </dd></dl> </div> </div> </div> <div id="docs-bottom-navigation" class="docs-navigation-links, withsidebar"> Previous: <a href="dml.html" title="previous chapter">Insert, Updates, Deletes</a> Next: <a href="compiler.html" title="next chapter">Custom SQL Constructs and Compilation Extension</a> <div id="docs-copyright"> © <a href="../copyright.html">Copyright</a> 2007-2019, the SQLAlchemy authors and contributors. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 2.0.1. </div> </div> </div> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '1.2.19', COLLAPSE_MODINDEX: false, FILE_SUFFIX: '.html' }; </script> <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> <!-- begin iterate through sphinx environment script_files --> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="../_static/language_data.js"></script> <!-- end iterate through sphinx environment script_files --> <script type="text/javascript" src="../_static/detectmobile.js"></script> <script type="text/javascript" src="../_static/init.js"></script> </body> </html>