1"use strict";(globalThis.webpackChunkhex_docs||=[]).push([[1603],{71878(e,n,l){l.r(n),l.d(n,{assets:()=>u,contentTitle:()=>x,default:()=>p,frontMatter:()=>h,metadata:()=>s,toc:()=>j});const s=JSON.parse('{"id":"explore-data/cells/calculations","title":"Calculations","description":"Write spreadsheet-style formulas in your projects","source":"@site/docs/explore-data/cells/calculations.md","sourceDirName":"explore-data/cells","slug":"/explore-data/cells/calculations","permalink":"/docs/explore-data/cells/calculations","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":8,"frontMatter":{"sidebar_position":8,"title":"Calculations","description":"Write spreadsheet-style formulas in your projects"},"sidebar":"docs","previous":{"title":"Writeback cells","permalink":"/docs/explore-data/cells/data-cells/writeback-cells"},"next":{"title":"Using Jinja","permalink":"/docs/explore-data/cells/using-jinja"}}');var i=l(474848),t=l(28453),r=l(415794),c=l(171006),d=l(296540);const o="apiDoc_Ukyo",a=d.memo(({children:e})=>(0,i.jsx)("div",{className:o,children:e})),h={sidebar_position:8,title:"Calculations",description:"Write spreadsheet-style formulas in your projects"},x="Calculations",u={},j=[{value:"Formulas",id:"formulas",level:2},{value:"Parameterized calculations",id:"parameterized-calculations",level:2},{value:"Data types",id:"data-types",level:2},{value:"Operators",id:"operators",level:2},{value:"+ - / * ^ %",id:"------",level:5},{value:"AND, OR, NOT",id:"and-or-not",level:5},{value:"=, !=, <, <=, >, >=",id:"-----",level:5},{value:"&",id:"",level:5},{value:"Functions",id:"functions",level:2},{value:"\ud83d\udcdd Text",id:"-text",level:3},{value:"Concat(text_1, ..., text_n)",id:"concattext_1--text_n",level:5},{value:"Length(text)",id:"lengthtext",level:5},{value:"Left(text, n)",id:"lefttext-n",level:5},{value:"Right(text, n)",id:"righttext-n",level:5},{value:"Lower(text)",id:"lowertext",level:5},{value:"Upper(text)",id:"uppertext",level:5},{value:"Contains(text, search_text)",id:"containstext-search_text",level:5},{value:"StartsWith(text, search_text)",id:"startswithtext-search_text",level:5},{value:"EndsWith(text, search_text)",id:"endswithtext-search_text",level:5}
1,{value:"Substitute(value, search_text, replacement_text)",id:"substitutevalue-search_text-replacement_text",level:5},{value:"SplitPart(text, delimiter, part_number)",id:"splitparttext-delimiter-part_number",level:5},{value:"\ud83e\uddee Math",id:"-math",level:3},{value:"Abs(number)",id:"absnumber",level:5},{value:"Ceiling(number)",id:"ceilingnumber",level:5},{value:"Floor(number)",id:"floornumber",level:5},{value:"Power(number, power)",id:"powernumber-power",level:5},{value:"Sqrt(number)",id:"sqrtnumber",level:5},{value:"Exp(power)",id:"exppower",level:5},{value:"Round(number)",id:"roundnumber",level:5},{value:"\ud83d\udd00 Logical",id:"-logical",level:3},{value:"If(condition, value_if_true, value_if_otherwise)",id:"ifcondition-value_if_true-value_if_otherwise",level:5},{value:"Switch(switch_value, if_matches_1, result_1, ..., if_matches_n, result_n)",id:"switchswitch_value-if_matches_1-result_1--if_matches_n-result_n",level:5},{value:"Coalesce(value_1, ..., value_n)",id:"coalescevalue_1--value_n",level:5},{value:"IsFinite(number)",id:"isfinitenumber",level:5},{value:"IsOneOf(value, match_1, ..., match_n)",id:"isoneofvalue-match_1--match_n",level:5},{value:"IsNull(value)",id:"isnullvalue",level:5},{value:"\ud83e\ude84 Casting",id:"-casting",level:3},{value:"ToText(number)",id:"totextnumber",level:5},{value:"ToNumber(text)",id:"tonumbertext",level:5},{value:"ToDatetime(text)",id:"todatetimetext",level:5},{value:"ToBoolean(number)",id:"tobooleannumber",level:5},{value:"\ud83d\udcc5 Date & Time",id:"-date--time",level:3},{value:"Year(datetime), Quarter(datetime), Month(datetime), Day(datetime), Hour(datetime), Minute(datetime), Second(datetime), Millisecond(datetime)",id:"yeardatetime-quarterdatetime-monthdatetime-daydatetime-hourdatetime-minutedatetime-seconddatetime-milliseconddatetime",level:5},{value:"TruncYear(datetime), TruncQuarter(datetime), TruncMonth(datetime), TruncWeek(datetime), TruncWeekMonday(datetime), TruncDay(datetime), TruncHour(datetime), TruncMinute(datetime), TruncSecond(datetime)",id:"truncyeardatetime-truncquarterdatetime-truncmonthdatetime-truncweekdatetime-truncweekmondaydatetime-truncdaydatetime-trunchourdatetime-truncminutedatetime-truncseconddatetime",level:5},{value:"DiffDays(start_datetime, end_datetime), DiffHours(start_datetime, end_datetime), DiffMinutes(start_datetime, end_datetime), DiffSeconds(start_datetime, end_datetime), DiffMilliseconds(start_datetime, end_datetime)",id:"diffdaysstart_datetime-end_datetime-diffhoursstart_datetime-end_datetime-diffminutesstart_datetime-end_datetime-diffsecondsstart_datetime-end_datetime-diffmillisecondsstart_datetime-end_datetime",level:5},{value:"DayOfWeek(datetime)",id:"dayofweekdatetime",level:5},{value:"Now()",id:"now",level:5},{value:"Today()",id:"today",level:5},{value:"\u2795 Aggregates",id:"-aggregates",level:3},{value:"Avg(number)",id:"avgnumber",level:5},{value:"Count(column)",id:"countcolumn",level:5},{value:"CountDistinct(column)",id:"countdistinctcolumn",level:5},{value:"Max(column)",id:"maxcolumn",level:5},{value:"Median(number)",id:"mediannumber",level:5},{value:"Min(column)",id:"mincolumn",level:5},{value:"StdDev(number)",id:"stddevnumber",level:5},{value:"StdDevPop(number)",id:"stddevpopnumber",level:5},{value:"Sum(number)",id:"sumnumber",level:5},{value:"Variance(number)",id:"variancenumber",level:5},{value:"VariancePop(number)",id:"variancepopnumber",level:5},{value:"Other Syntax",id:"other-syntax",level:2},{value:"Order of operations",id:"order-of-operations",level:3},{value:"Escaping column names",id:"escaping-column-names",level:3},{value:"Nulls",id:"nulls",level:2},{value:"Known limitations",id:"known-limitations",level:2},{value:"Supported connections",id:"supported-connections",level:2}];function m(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h5:"h5",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"calculations",children:"Calculations"})}),"\n",(0,i.jsx)("div",{className:"subheader",children:(0,i.jsx)(n.p,{children:"Use Calculations to write spreadsheet-style formulas."})}),"\n",(0,i.jsx)(n.admonition,{type:"info",children:(0,i.jsxs)(n.p,{children:["Users will need ",(0,i.jsx)(n.strong,{children:"Can Edit"})," ",(0,i.jsx)(n.a,{href:"/docs/collaborate/sharing-and-permissions/sharing-permissions#what-permissions-are-there",children:"permissions"}),"."]})}),"\n",(0,i.jsx)(n.p,{children:"Hex calculations allow you to write ad-hoc formulas using a familiar spreadsheet interface. Creating a formula will add a new column to your table."}),"\n",(0,i.jsx)(r.A,{src:"explore-data/calcs",alt:"use the browse button in any sql cell to explore that data source in the Data browser"}),"\n",(0,i.jsxs)(n.p,{children:["Calculations can be created wherever you use Tables (in a Table Display cell, the Table tab of a SQL/Chart cell, or in ",(0,i.jsx)(n.a,{href:"/docs/share-insights/explore#calculations",children:"Explore"}),"). To get started, click the ",(0,i.jsx)(n.strong,{children:"+"})," icon at the right of a table. The formula bar will open and a new column will appear on the right. Then, type a formula using the syntax in the language documentation below. To reference columns, begin typing to bring up a list of matching column names. Use the arrow keys to move up and down the suggestions list, and select the desired column by hitting ",(0,i.jsx)(n.code,{children:"Tab"})," or ",(0,i.jsx)(n.code,{children:"Enter"}),". Alternatively, click a column in the table to reference it in your formula."]}),"\n",(0,i.jsxs)(n.p,{children:["A preview of your calculated values will be rendered as you type. Hit ",(0,i.jsx)(n.code,{children:"Enter"})," or ",(0,i.jsx)(n.code,{children:"\u2318 + Enter"})," to run the calculation in earnest. The calculation will be applied to every row in the table."]}),"\n",(0,i.jsx)(c.A,{location:"docs",src:"explore-data/calcs-example.mp4"}),"\n",(0,i.jsxs)(n.p,{children:["To edit an existing calculation, either click the ",(0,i.jsx)(n.strong,{children:"fx"})," icon in the column header or click the column's header and select ",(0,i.jsx)(n.strong,{children:"Edit formula\u2026"}),"."]}),"\n",(0,i.jsx)(c.A,{location:"docs",src:"explore-data/calcs-edit-formula.mp4"}),"\n",(0,i.jsx)(n.p,{children:"Calculated columns can be filtered, formatted, and sorted, just like a regular column. If a cell with a calculation has a cell-level filter applied to it, the calculation will run before the filter is applied."}),"\n",(0,i.jsx)(c.A,{location:"docs",src:"explore-data/calcs-column-actions.mp4"}),"\n",(0,i.jsx)(n.h2,{id:"formulas",children:"Formulas"}),"\n",(0,i.jsx)(n.p,{children:"The Hex calculation language is designed to be familiar to spreadsheet users. You can perform basic arithmetic using mathematical operators:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"numerator / denominator\n"})}),"\n",(0,i.jsx)(n.p,{children:"You can compose functions to perform more sophisticated logic:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-python",children:"If(end_date < Today(), 'Closed', 'Active')\n"})}),"\n",(0,i.jsx)(n.p,{children:"The data types, operators, and functions that are available in the Hex calculation language are documented below."}),"\n",(0,i.jsx)(n.h2,{id:"parameterized-calculations",children:"Parameterized calculations"}),"\n",(0,i.jsx)(n.p,{children:"It's possible to make calculations dynamic based on project variables. You can use Jinja to reference Python variables in calculation formulas."}),"\n",(0,i.jsxs)(n.p,{children:["Variables can be referenced in a formula using syntax like the following: ",(0,i.jsx)(n.code,{children:"{{variable_name}}"}),". See ",(0,i.jsx)(n.a,{href:"/docs/explore-data/cells/using-jinja",children:"Using Jinja"})," for more details on Jinja usage."]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsx)(n.p,{children:"Complex jinja logic such as if statements, for loops, and references to lists are not supported."})}),"\n",(0,i.jsx)(n.p,{children:"Changing an input parameter upstream will reactively update parameterized calculations downstream."}),"\n",(0,i.jsx)(c.A,{location:"docs",src:"explore-data/parameterized-calculation-updating.mp4"}),"\n",(0,i.jsx)(n.h2,{id:"data-types",children:"Data types"}),"\n",(0,i.jsxs)(n.p,{children:["The calculation language presents four data types: ",(0,i.jsx)(n.strong,{children:"Text"}),", ",(0,i.jsx)(n.strong,{children:"Number"}),", ",(0,i.jsx)(n.strong,{children:"Boolean"}),", and ",(0,i.jsx)(n.strong,{children:"Datetime"}),". They map to the underlying dataframe data types as follows:"]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Calcs Type"}),(0,i.jsx)(n.th,{children:"Pandas Type"}),(0,i.jsx)(n.th,{children:"SQL Type"}),(0,i.jsx)(n.th,{children:"Example Literals"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Text"}),(0,i.jsx)(n.td,{children:"object"}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"VARCHAR"}),", ",(0,i.jsx)(n.code,{children:"CHAR"})]}),(0,i.jsx)(n.td,{children:"'Hello!', '', null"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Number"}),(0,i.jsx)(n.td,{children:"int64, float64"}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"INT"}),", ",(0,i.jsx)(n.code,{children:"BIGINT"}),", ",(0,i.jsx)(n.code,{children:"SMALLINT"}),", ",(0,i.jsx)(n.code,{children:"FLOAT"}),", ",(0,i.jsx)(n.code,{children:"DOUBLE"}),", ",(0,i.jsx)(n.code,{children:"DECIMAL"})]}),(0,i.jsx)(n.td,{children:"42, -42.0, 2.5e12, null"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Boolean"}),(0,i.jsx)(n.td,{children:"bool"}),(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"BOOLEAN"})}),(0,i.jsx)(n.td,{children:"True, False, null"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Datetime"}),(0,i.jsx)(n.td,{children:"datetime64"}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"DATE"}),", ",(0,i.jsx)(n.code,{children:"DATETIME"}),", ",(0,i.jsx)(n.code,{children:"TIMESTAMP"})]}),(0,i.jsx)(n.td,{children:"'2020-01-28 04:08:10', null"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"operators",children:"Operators"}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"------",children:"+ - / * ^ %"}),(0,i.jsx)(n.p,{children:"Performs arithmetic between two numbers."}),(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"/"})," always produces a float, and never truncates. Division by zero produces null."]}),(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"^"})," raises one number to the power of another number."]}),(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"%"})," (modulo) returns the remainder when dividing one number by another."]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"and-or-not",children:"AND, OR, NOT"}),(0,i.jsx)(n.p,{children:"Logical operators for combining or negating boolean values. OR is inclusive."}),(0,i.jsxs)(n.p,{children:["AND or OR are also available as ",(0,i.jsx)(n.code,{children:"&&"})," and ",(0,i.jsx)(n.code,{children:"||"})," respectively.\nNOT is also available as ",(0,i.jsx)(n.code,{children:"!"}),"."]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"boolean"})}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"-----",children:"=, !=, <, <=, >, >="}),(0,i.jsxs)(n.p,{children:["Compares a value to another. Equals and not-equals work on any value types. Only numbers and datetime values can be used for ",(0,i.jsx)(n.code,{children:"<"}),", ",(0,i.jsx)(n.code,{children:"<="}),", ",(0,i.jsx)(n.code,{children:">"})," and ",(0,i.jsx)(n.code,{children:">="})," comparisons."]}),(0,i.jsx)(n.p,{children:"Values with different data types can not be compared."}),(0,i.jsxs)(n.p,{children:["Equals and not-equals are also available as ",(0,i.jsx)(n.code,{children:"=="})," and ",(0,i.jsx)(n.code,{children:"<>"})," respectively."]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"boolean"})}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"",children:"&"}),(0,i.jsx)(n.p,{children:"Concatenates two or more text values."}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"text"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"'Jane' & ' ' & 'Doe'"})," \u2192 'Jane Doe'"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsx)(n.h2,{id:"functions",children:"Functions"}),"\n",(0,i.jsx)(n.h3,{id:"-text",children:"\ud83d\udcdd Text"}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"concattext_1--text_n",children:"Concat(text_1, ..., text_n)"}),(0,i.jsxs)(n.p,{children:["Concatenates multiple ",(0,i.jsx)(n.code,{children:"text"})," values together into one. Equivalent to the ",(0,i.jsx)(n.code,{children:"&"})," operator."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to concatenate. Any number of additional text values\ncan be added."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"text"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Concat('Jane', ' ', 'Doe')"})," \u2192 'Jane Doe'"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"lengthtext",children:"Length(text)"}),(0,i.jsxs)(n.p,{children:["Counts the number of characters in ",(0,i.jsx)(n.code,{children:"text"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to measure the length of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Length('Hex')"})," \u2192 3"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"lefttext-n",children:"Left(text, n)"}),(0,i.jsxs)(n.p,{children:["Returns the first ",(0,i.jsx)(n.code,{children:"n"})," characters of ",(0,i.jsx)(n.code,{children:"text"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to take the first n characters of."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"n"})," : The number of characters to take."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"text"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Left('abcd', 3)"})," \u2192 'abc'"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"righttext-n",children:"Right(text, n)"}),(0,i.jsxs)(n.p,{children:["Returns the last ",(0,i.jsx)(n.code,{children:"n"})," characters of ",(0,i.jsx)(n.code,{children:"text"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to take the last n characters of."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"n"})," : The number of characters to take."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"text"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Right('abcd', 3)"})," \u2192 'bcd'"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"lowertext",children:"Lower(text)"}),(0,i.jsx)(n.p,{children:"Converts a text value to lowercase."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to make lowercase."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"text"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Lower('Jane Doe')"})," \u2192 'jane doe'"]}),"\n"]}),"\n"]})]}),"\n",(0,i.js
1xs)(a,{children:[(0,i.jsx)(n.h5,{id:"uppertext",children:"Upper(text)"}),(0,i.jsx)(n.p,{children:"Converts a text value to uppercase."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to make uppercase."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"text"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Upper('Jane Doe')"})," \u2192 'JANE DOE'"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"containstext-search_text",children:"Contains(text, search_text)"}),(0,i.jsxs)(n.p,{children:["Returns True if ",(0,i.jsx)(n.code,{children:"text"})," contains ",(0,i.jsx)(n.code,{children:"search_text"}),", and False otherwise."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to search in."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"search_text"})," : A text literal to search for within text. Cannot be an expression or reference."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"boolean"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Contains('abcd', 'abc')"})," \u2192 True"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"startswithtext-search_text",children:"StartsWith(text, search_text)"}),(0,i.jsxs)(n.p,{children:["Returns True if ",(0,i.jsx)(n.code,{children:"text"})," starts with ",(0,i.jsx)(n.code,{children:"search_text"}),", and False otherwise."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to search in."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"search_text"})," : A text literal to search for at the start of text. Cannot be an expression or reference."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"boolean"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"StartsWith('abcd', 'abc')"})," \u2192 True"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"endswithtext-search_text",children:"EndsWith(text, search_text)"}),(0,i.jsxs)(n.p,{children:["Returns True if ",(0,i.jsx)(n.code,{children:"text"})," ends with ",(0,i.jsx)(n.code,{children:"search_text"}),", and False otherwise."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to search in."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"search_text"})," : A text literal to search for at the end of text. Cannot be an expression or reference."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"boolean"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"EndsWith('abcd', 'bcd')"})," \u2192 True"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"substitutevalue-search_text-replacement_text",children:"Substitute(value, search_text, replacement_text)"}),(0,i.jsxs)(n.p,{children:["Changes all occurrences of ",(0,i.jsx)(n.code,{children:"search_text"})," in ",(0,i.jsx)(n.code,{children:"value"})," to be ",(0,i.jsx)(n.code,{children:"replacement_text"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"value"})," : A value to search in."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"search_text"})," : A sub-value to search for inside of ",(0,i.jsx)(n.code,{children:"value"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"replacement_text"})," : The value to replace ",(0,i.jsx)(n.code,{children:"search_text"})," with."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"text"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Substitute('abcabc', 'bc', 'BC')"})," \u2192 'aBCaBC'"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"splitparttext-delimiter-part_number",children:"SplitPart(text, delimiter, part_number)"}),(0,i.jsxs)(n.p,{children:["Splits ",(0,i.jsx)(n.code,{children:"text"})," into separate parts separated by ",(0,i.jsx)(n.code,{children:"delimiter"})," and returns the ",(0,i.jsx)(n.code,{children:"part_number"})," part."]}),(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"SplitPart"})," is only available in ",(0,i.jsx)(n.a,{href:"/docs/share-insights/explore",children:"Explore"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to concatenate. Any number of additional text values\ncan be added."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"delimiter"})," : A text value to split the text along."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"part_number"})," : The part number to select."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"text"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:'SplitPart("[email protected]", "@", 1)'})," \u2192 'jane'"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsx)(n.h3,{id:"-math",children:"\ud83e\uddee Math"}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"absnumber",children:"Abs(number)"}),(0,i.jsxs)(n.p,{children:["Computes the absolute value of ",(0,i.jsx)(n.code,{children:"number"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A number to take the absolute value of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Abs(-3)"})," \u2192 3"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"ceilingnumber",children:"Ceiling(number)"}),(0,i.jsxs)(n.p,{children:["Rounds up ",(0,i.jsx)(n.code,{children:"number"})," to the nearest integer."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A number to round up."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Ceiling(3.14)"})," \u2192 4"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"floornumber",children:"Floor(number)"}),(0,i.jsxs)(n.p,{children:["Rounds down ",(0,i.jsx)(n.code,{children:"number"})," to the nearest integer."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A number to round down."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Floor(3.14)"})," \u2192 3"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"powernumber-power",children:"Power(number, power)"}),(0,i.jsxs)(n.p,{children:["Raises ",(0,i.jsx)(n.code,{children:"number"})," to the power of ",(0,i.jsx)(n.code,{children:"power"}),". Functionally equivalent to ",(0,i.jsx)(n.code,{children:"^"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A number to raise by the power of power."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"power"})," : The power to raise number by."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Power(3, 2)"})," \u2192 9"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"sqrtnumber",children:"Sqrt(number)"}),(0,i.jsxs)(n.p,{children:["Takes the square root of ",(0,i.jsx)(n.code,{children:"number"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : The number to take the square root of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Sqrt(9)"})," \u2192 3"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"exppower",children:"Exp(power)"}),(0,i.jsxs)(n.p,{children:["Raises the mathematical constant ",(0,i.jsx)(n.strong,{children:"e"})," to the power of ",(0,i.jsx)(n.code,{children:"power"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"power"})," : The power to raise e by."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Exp(1)"})," \u2192 2.718281828459045"]}),"\n"]}),"\n"]})]}
1),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"roundnumber",children:"Round(number)"}),(0,i.jsxs)(n.p,{children:["Rounds ",(0,i.jsx)(n.code,{children:"number"})," up or down to the nearest integer."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : The number to round."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Round(3.14)"})," \u2192 3"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsx)(n.h3,{id:"-logical",children:"\ud83d\udd00 Logical"}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"ifcondition-value_if_true-value_if_otherwise",children:"If(condition, value_if_true, value_if_otherwise)"}),(0,i.jsxs)(n.p,{children:["Returns ",(0,i.jsx)(n.code,{children:"value_if_true"})," if ",(0,i.jsx)(n.code,{children:"condition"})," is True, and ",(0,i.jsx)(n.code,{children:"value_if_otherwise"})," otherwise."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"condition"})," : An expression resulting in True or False."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"value_if_true"})," : A value to return if condition is True."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"value_if_otherwise"})," : A value to return if condition is not True. Must be the same data type as value_if_true."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"text"}),", ",(0,i.jsx)(n.code,{children:"number"}),", ",(0,i.jsx)(n.code,{children:"boolean"}),", ",(0,i.jsx)(n.code,{children:"datetime"})]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"If(num % 2 = 0, 'Even', 'Odd')"})}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"switchswitch_value-if_matches_1-result_1--if_matches_n-result_n",children:"Switch(switch_value, if_matches_1, result_1, ..., if_matches_n, result_n)"}),(0,i.jsxs)(n.p,{children:["A more succinct and readable way of nesting many ",(0,i.jsx)(n.code,{children:"If()"})," statements based on one single input value. Returns the result value corresponding to the paired
1if_matches value that equals the switch_value."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"switch_value"})," : The value to compare against all the if_matches values."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"if_matches_1"})," : The first value to compare against switch_value. If they are equal, the function returns result_1. Otherwise, it compares switch_value to the next if_matches value."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"result_1"})," : The value to return if switch_value equals if_matches_1."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"text"}),", ",(0,i.jsx)(n.code,{children:"number"}),", ",(0,i.jsx)(n.code,{children:"boolean"}),", ",(0,i.jsx)(n.code,{children:"datetime"})]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"Switch(status_code, 1, 'Processing', 2, 'Confirmed', 3, 'Shipped', 4, 'Delivered')"})}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"coalescevalue_1--value_n",children:"Coalesce(value_1, ..., value_n)"}),(0,i.jsxs)(n.p,{children:["Returns the first non-null ",(0,i.jsx)(n.code,{children:"value"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"value_1"})," : A value to return if not null. If null, the next value input is considered, and so on."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"text"}),", ",(0,i.jsx)(n.code,{children:"number"}),", ",(0,i.jsx)(n.code,{children:"boolean"}),", ",(0,i.jsx)(n.code,{children:"datetime"})]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Coalesce(null, 0, 42)"})," \u2192 0"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"isfinitenumber",children:"IsFinite(number)"}),(0,i.jsxs)(n.p,{children:["Returns True if ",(0,i.jsx)(n.code,{children:"number"})," is not ",(0,i.jsx)(n.em,{children:(0,i.jsx)(n.strong,{children:"null"})}),", not ",(0,i.jsx)(n.em,{children:(0,i.jsx)(n.strong,{children:"NaN"})}),", and not ",(0,i.jsx)(n.em,{children:(0,i.jsx)(n.strong,{children:"Inf"})}),". Otherwise, returns False."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A number to check for being finite."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"boolean"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"IsFinite(42)"})," \u2192 True"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"isoneofvalue-match_1--match_n",children:"IsOneOf(value, match_1, ..., match_n)"}),(0,i.jsxs)(n.p,{children:["Returns True if ",(0,i.jsx)(n.code,{children:"value"})," equals any of ",(0,i.jsx)(n.code,{children:"match"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"value"})," : A ",(0,i.jsx)(n.code,{children:"value"})," to compare against all the ",(0,i.jsx)(n.code,{children:"match"})," values."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"match_1"})," : The first value to compare against value. If they are equal, the function returns True. Otherwise, it compares value to the next match value."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"boolean"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"IsOneOf(1, 2, 3, 4)"})," \u2192 False (1 is not equal to 2, 3, or 4)"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"isnullvalue",children:"IsNull(value)"}),(0,i.jsxs)(n.p,{children:["Returns True if ",(0,i.jsx)(n.code,{children:"value"})," is null, and False otherwise."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"value"})," : A text, number, boolean, or datetime value to check for being null."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"boolean"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"IsNull(null)"})," \u2192 True"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsx)(n.h3,{id:"-casting",children:"\ud83e\ude84 Casting"}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"totextnumber",children:"ToText(number)"}),(0,i.jsxs)(n.p,{children:["Converts ",(0,i.jsx)(n.code,{children:"number"})," into a text data type."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A number to convert to text."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"text"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ToText(123)"})," \u2192 '123'"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"tonumbertext",children:"ToNumber(text)"}),(0,i.jsxs)(n.p,{children:["Converts ",(0,i.jsx)(n.code,{children:"text"}
1)," into a number data type."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to convert to a number."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ToNumber('123')"})," \u2192 123"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"todatetimetext",children:"ToDatetime(text)"}),(0,i.jsxs)(n.p,{children:["Converts ",(0,i.jsx)(n.code,{children:"text"})," into a datetime data type."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"text"})," : A text value to convert to a datetime."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"datetime"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ToDatetime('2024-02-19')"})," \u2192 2024-02-19T00:00:00"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"tobooleannumber",children:"ToBoolean(number)"}),(0,i.jsxs)(n.p,{children:["Converts ",(0,i.jsx)(n.code,{children:"number"})," into a boolean data type, where 0 is False and 1 is True."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A number to convert to a boolean."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"boolean"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"ToBoolean(0)"})," \u2192 False"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsx)(n.h3,{id:"-date--time",children:"\ud83d\udcc5 Date & Time"}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"yeardatetime-quarterdatetime-monthdatetime-daydatetime-hourdatetime-minutedatetime-seconddatetime-milliseconddatetime",children:"Year(datetime), Quarter(datetime), Month(datetime), Day(datetime), Hour(datetime), Minute(datetime), Second(datetime), Millisecond(datetime)"}),(0,i.jsxs)(n.p,{children:["Extracts the date part specified in the function name from ",(0,i.jsx)(n.code,{children:"datetime"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"datetime"})," : A datetime value to extract from."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Day('2024-02-14')"})," \u2192 14"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"truncyeardatetime-truncquarterdatetime-truncmonthdatetime-truncweekdatetime-truncweekmondaydatetime-truncdaydatetime-trunchourdatetime-truncminutedatetime-truncseconddatetime",children:"TruncYear(datetime), TruncQuarter(datetime), TruncMonth(datetime), TruncWeek(datetime), TruncWeekMonday(datetime), TruncDay(datetime), TruncHour(datetime), TruncMinute(datetime), TruncSecond(datetime)"}),(0,i.jsxs)(n.p,{children:["Truncates ",(0,i.jsx)(n.code,{children:"datetime"})," down to the nearest datepart as specified in the function name."]}),(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"TruncWeekMonday"})," is only available in ",(0,i.jsx)(n.a,{href:"/docs/share-insights/explore",children:"Explore"}),"."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"datetime"})," : A datetime value to be truncated."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"datetime"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"TruncMonth('2024-02-14 10:31:50')"})," \u2192 2024-02-01 00:00:00"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"diffdaysstart_datetime-end_datetime-diffhoursstart_datetime-end_datetime-diffminutesstart_datetime-end_datetime-diffsecondsstart_datetime-end_datetime-diffmillisecondsstart_datetime-end_datetime",children:"DiffDays(start_datetime, end_datetime), DiffHours(start_datetime, end_datetime), DiffMinutes(start_datetime, end_datetime), DiffSeconds(start_datetime, end_datetime), DiffMilliseconds(start_datetime, end_datetime)"}),(0,i.jsxs)(n.p,{children:["Calculates the amount of time between ",(0,i.jsx)(n.code,{children:"start_datetime"})," and ",(0,i.jsx)(n.code,{children:"end_datetime"}),". If ",(0,i.jsx)(n.code,{children:"start_datetime"})," is after ",(0,i.jsx)(n.code,{children:"end_datetime"}),", the result will be negative."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"start_datetime"})," : A datetime value to calculate from."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"end_datetime"})," : A datetime value to subtract from ",(0,i.jsx)(n.code,{children:"start_datetime"}),"."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"DiffSeconds('2024-02-03 04:05:06', '2024-02-03 04:05:08')"})," \u2192 2"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"dayofweekdatetime",children:"DayOfWeek(datetime)"}),(0,i.jsxs)(n.p,{children:["Extracts the day of the week from ",(0,i.jsx)(n.code,{children:"datetime"})," (1 for Sunday, 7 for Saturday)."]}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"datetime"})," : A datetime value to extract from."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"DayOfWeek('2024-01-02')"})," \u2192 3"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"now",children:"Now()"}),(0,i.jsx)(n.p,{children:"Returns the current date and time."}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"datetime"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Now()"})," \u2192 2024-02-15 13:04:56"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"today",children:"Today()"}),(0,i.jsx)(n.p,{children:"Returns the current date."}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"datetime"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Today()"})," \u2192 2024-02-15"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsx)(n.h3,{id:"-aggregates",children:"\u2795 Aggregates"}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"avgnumber",children:"Avg(number)"}),(0,i.jsx)(n.p,{children:"Computes the mean of the input column."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A numeric column you want to compute the average of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Avg(column)"})," \u2192 2.53"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"countcolumn",children:"Count(column)"}),(0,i.jsx)(n.p,{children:"Counts the number of all values in the input column."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"column"})," : A column (of any type) whose values you want to count."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Count(column)"})," \u2192 1640"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"countdistinctcolumn",children:"CountDistinct(column)"}),(0,i.jsx)(n.p,{children:"Counts the number of unique values in the input column."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"column"})," : A column (of any type) whose values you want to count."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"CountDistinct(column)"})," \u2192 1201"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"maxcolumn",children:"Max(column)"}),(0,i.jsx)(n.p,{children:"Returns the value in the input column that would come first if it were sorted descending."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"column"})," : A column (of any type) you want to compute the maximum of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"text"}),", ",(0,i.jsx)(n.code,{children:"number"}),", ",(0,i.jsx)(n.code,{children:"boolean"}),", ",(0,i.jsx)(n.code,{children:"datetime"})]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Max(column)"})," \u2192 5007"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"mediannumber",children:"Median(number)"}),(0,i.jsx)(n.p,{children:"Returns the median number from the input column."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A numeric column you want to compute the median of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Median(column)"})," \u2192 52"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"mincolumn",children:"Min(column)"}),(0,i.jsx)(n.p,{children:"Returns the value in the input column that would come first if it were sorted ascending."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"column"})," : A column (of any type) you want to compute the minimum of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"text"}),", ",(0,i.jsx)(n.code,{children:"number"}),", ",(0,i.jsx)(n.code,{children:"boolean"}),", ",(0,i.jsx)(n.code,{children:"datetime"})]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Min(column)"})," \u2192 -47"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"stddevnumber",children:"StdDev(number)"}),(0,i.jsx)(n.p,{children:"Returns the sample standard deviation of the input column."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A numeric column you want to compute the sample standard deviation of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"StdDev(column)"})," \u2192 1.43"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"stddevpopnumber",children:"StdDevPop(number)"}),(0,i.jsx)(n.p,{children:"Returns the population standard deviation of the input column."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A numeric column you want to compute the population standard deviation of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"StdDevPop(column)"})," \u2192 1.47"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"sumnumber",children:"Sum(number)"}),(0,i.jsx)(n.p,{children:"Returns the sum of all the values in the input column."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A numeric column whose values you want to take the sum of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Sum(column)"})," \u2192 387"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"variancenumber",children:"Variance(number)"}),(0,i.jsx)(n.p,{children:"Returns the sample variance of the input column."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A numeric column you want to compute the sample variance of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Variance(column)"})," \u2192 2.12"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsxs)(a,{children:[(0,i.jsx)(n.h5,{id:"variancepopnumber",children:"VariancePop(number)"}),(0,i.jsx)(n.p,{children:"Returns the population variance of the input column."}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"number"})," : A numeric column you want to compute the population variance of."]}),"\n"]}),(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"number"})}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"VariancePop(column)"})," \u2192 2.42"]}),"\n"]}),"\n"]})]}),"\n",(0,i.jsx)(n.h2,{id:"other-syntax",children:"Other Syntax"}),"\n",(0,i.jsx)(n.h3,{id:"order-of-operations",children:"Order of operations"}),"\n",(0,i.jsxs)(n.p,{children:["Parenthesis can be used to group operations together to explicitly specify the order of operations, most often in arithmetic. For example: ",(0,i.jsx)(n.code,{children:"(a + b) / c"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Expressions are evaluated in the following order:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Parenthesis"}),"\n",(0,i.jsx)(n.li,{children:"Functions"}),"\n",(0,i.jsxs)(n.li,{children:["Unary operators (",(0,i.jsx)(n.code,{children:"!"}),", ",(0,i.jsx)(n.code,{children:"-"})," negation)"]}),"\n",(0,i.jsxs)(n.li,{children:["Arithmetic operators (",(0,i.jsx)(n.code,{children:"^"}),", ",(0,i.jsx)(n.code,{children:"*"}),", ",(0,i.jsx)(n.code,{children:"/"}),", ",(0,i.jsx)(n.code,{children:"+"}),", ",(0,i.jsx)(n.code,{children:"-"})," subtraction)"]}),"\n",(0,i.jsxs)(n.li,{children:["Comparative operators (",(0,i.jsx)(n.code,{children:"<="}),", ",(0,i.jsx)(n.code,{children:"<"}),", ",(0,i.jsx)(n.code,{children:">"})," and ",(0,i.jsx)(n.code,{children:">="}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Equality (",(0,i.jsx)(n.code,{children:"="}),", ",(0,i.jsx)(n.code,{children:"!="}),", ",(0,i.jsx)(n.code,{children:"=="})," and ",(0,i.jsx)(n.code,{children:"<>"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Logical operators (",(0,i.jsx)(n.code,{children:"AND"}),", ",(0,i.jsx)(n.code,{children:"OR"}),", ",(0,i.jsx)(n.code,{children:"&&"})," and ",(0,i.jsx)(n.code,{children:"||"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Concatenation operator (",(0,i.jsx)(n.code,{children:"&"}),")"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["All operations are left-associative, meaning that compound expressions with multiple operators evaluate the leftmost sub-expression first. For example: ",(0,i.jsx)(n.code,{children:"a AND b OR c"})," is treated as ",(0,i.jsx)(n.code,{children:"(a AND b) OR c"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"escaping-column-names",children:"Escaping column names"}),"\n",(0,i.jsxs)(n.p,{children:["Backticks (``) may used as a wrapper for references. This is only required if the column name contains special characters such as whitespace, such as in ",(0,i.jsx)(n.code,{children:"`Total Price`"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"nulls",children:"Nulls"}),"\n",(0,i.jsxs)(n.p,{children:["The result of a calculation will be ",(0,i.jsx)(n.code,{children:"null"})," if ",(0,i.jsx)(n.code,{children:"null"})," is one of the formula's arguments, and substituting the ",(0,i.jsx)(
1n.code,{children:"null"})," argument with different values would produce different outcomes. For example, ",(0,i.jsx)(n.code,{children:"startswith(null, 'Hello')"})," returns ",(0,i.jsx)(n.code,{children:"null"})," because substituting ",(0,i.jsx)(n.code,{children:"null"})," with different values produces different outcomes (substituting with ",(0,i.jsx)(n.code,{children:"'Hello'"})," produces ",(0,i.jsx)(n.code,{children:"True"}),", while substituting with ",(0,i.jsx)(n.code,{children:"'Hi'"})," returns ",(0,i.jsx)(n.code,{children:"False"}),"). Some more examples are below:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"1 + null"})," \u2192 null"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"If(null, b, c)"})," \u2192 c"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"Switch(null, b, c)"})," \u2192 null"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"True OR null"})," \u2192 null"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"False OR null"})," \u2192 null"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"True AND null"})," \u2192 null"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"False AND null"})," \u2192 False"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"null OR null"})," \u2192 null"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"null AND null"})," \u2192 null"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Null values are ignored for all aggregate calculations. For example, ",(0,i.jsx)(n.code,{children:"Count(column)"})," will ignore null values when calculating count of values in ",(0,i.jsx)(n.code,{children:"column"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"known-limitations",children:"Known limitations"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Not all databases support calculations with Query mode:"})," It is not possible to configure calculations on ",(0,i.jsx)(n.a,{href:"../cells/sql-cells/sql-cells-introduction#query-mode",children:"query objects"})," from certain connections. See the ",(0,i.jsx)(n.a,{href:"#supported-connections",children:"table below"})," to understand which connections are supported."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"No windows:"})," Window operations (",(0,i.jsx)(n.code,{children:"Rank()"}),", ",(0,i.jsx)(n.code,{children:"PercentOfTotal()"}),", offset range inputs, etc.) are not currently supported."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Column-level, not cell-level:"})," Calculations happen on the column level. It is not possible to perform a calculation on a single row without applying it to the rest of the column. Similarly, you must reference whole columns in your formulas. It is not possible to reference an individual row, or range of rows, in your formula."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"supported-connections",children:"Supported connections"}),"\n",(0,i.jsxs)(n.p,{children:["The below table details which data connections are supported when using Calculations on ",(0,i.jsx)(n.a,{href:"../cells/sql-cells/sql-cells-introduction#query-mode",children:"query objects"}),"."]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Database"}),(0,i.jsx)(n.th,{children:"Supported?"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"AlloyDB"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Athena"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"BigQuery"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"ClickHouse"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"CloudSQL (MySQL)"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"CloudSQL (PostgreSQL)"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"CloudSQL (MS SQL Server)"}),(0,i.jsx)(n.td,{children:"\u274c"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Databricks"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"DuckDB"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"MS SQL Server"}),(0,i.jsx)(n.td,{children:"\u274c"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"MariaDB"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Motherduck"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"MySQL"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"PostgreSQL"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Presto"}),(0,i.jsx)(n.td,{children:"\u274c"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Redshift"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Snowflake"}),(0,i.jsx)(n.td,{children:"\u2705"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Starburst"}),(0,i.jsx)(n.td,{children:"\u274c"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Trino"}),(0,i.jsx)(n.td,{children:"\u274c"})]})]})]})]})}function p(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(m,{...e})}):m(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.