# Cascade Library

## Cascade Library

- [Welcome to Cascade](https://docs.cascade.io/cascade/introduction/welcome-to-cascade.md)
- [Workspaces](https://docs.cascade.io/cascade/introduction/workspaces.md)
- [Build Your First Workflow](https://docs.cascade.io/cascade/getting-started/build-your-first-workflow.md)
- [Build Your First Data App](https://docs.cascade.io/cascade/getting-started/data-apps-101.md)
- [Overview](https://docs.cascade.io/cascade/workflows/overview.md)
- [Navigating the Canvas](https://docs.cascade.io/cascade/workflows/overview/navigating-the-canvas.md)
- [Setting Up](https://docs.cascade.io/cascade/workflows/overview/setting-up.md)
- [Drag and Drop](https://docs.cascade.io/cascade/workflows/overview/drag-and-drop.md)
- [Tools](https://docs.cascade.io/cascade/workflows/overview/tools.md)
- [Dynamic Workflows](https://docs.cascade.io/cascade/workflows/dynamic-workflows.md): Isolate and reuse workflow logic with Dynamic Workflows
- [Global Variables](https://docs.cascade.io/cascade/workflows/global-variables.md): A global value set at a workflow level
- [Data Locker](https://docs.cascade.io/cascade/workflows/data-locker.md)
- [Scheduling](https://docs.cascade.io/cascade/workflows/scheduling.md): Set up schedules to automate workflow runs
- [Webhooks](https://docs.cascade.io/cascade/workflows/webhooks.md): Set up webhooks to automate workflow runs
- [Run Logs](https://docs.cascade.io/cascade/workflows/run-logs.md): Track your workflow runs and run details
- [Workflow Deployment](https://docs.cascade.io/cascade/workflows/workflow-deployment.md): Edit your operationalized workflows by switching from Live to Draft mode
- [Connecting Cascade to your database](https://docs.cascade.io/cascade/integrations/connecting-cascade-to-your-database.md)
- [Amazon S3](https://docs.cascade.io/cascade/integrations/amazon_s3.md)
- [Azure Blob Storage](https://docs.cascade.io/cascade/integrations/azure_blob.md)
- [BigQuery](https://docs.cascade.io/cascade/integrations/bigquery.md)
- [Google Sheets](https://docs.cascade.io/cascade/integrations/gsheets.md)
- [MySQL](https://docs.cascade.io/cascade/integrations/mysql.md)
- [Postgres](https://docs.cascade.io/cascade/integrations/postgres.md)
- [Redshift](https://docs.cascade.io/cascade/integrations/redshift.md)
- [SQL Server](https://docs.cascade.io/cascade/integrations/sqlserver.md)
- [Snowflake](https://docs.cascade.io/cascade/integrations/snowflake.md)
- [Tableau Server](https://docs.cascade.io/cascade/integrations/tableau.md)
- [Import](https://docs.cascade.io/cascade/tools/import.md)
- [Import File](https://docs.cascade.io/cascade/tools/import/import_file.md): Upload a file, or import a file from a URL
- [Import from Data Locker](https://docs.cascade.io/cascade/tools/import/import_workspace.md): Import a table, chart or model from your Data Locker
- [Import from API](https://docs.cascade.io/cascade/tools/import/import_api.md): Import data from an external service.
- [Import Sample Data](https://docs.cascade.io/cascade/tools/import/import_sample.md): Import a sample dataset
- [New Table](https://docs.cascade.io/cascade/tools/import/newtable.md): Create a new table from scratch
- [Clean](https://docs.cascade.io/cascade/tools/cleaning.md)
- [Validate Schema](https://docs.cascade.io/cascade/tools/cleaning/validateschema.md): Validate that a table contains specific columns.
- [Find/Replace](https://docs.cascade.io/cascade/tools/cleaning/findreplace.md): Replace values in a column with other values
- [Text to Columns](https://docs.cascade.io/cascade/tools/cleaning/text2columns.md): Split one column into many based on text content
- [Flatten Json](https://docs.cascade.io/cascade/tools/cleaning/flattenjson.md): Flatten JSON allows you to flatten json strings in selected columns from a table.
- [Sample](https://docs.cascade.io/cascade/tools/cleaning/sample.md): Sample pulls a portion of data from a tool based on rules.
- [Standardize](https://docs.cascade.io/cascade/tools/cleaning/standardize.md): Standardize data to a specified output format
- [Validate](https://docs.cascade.io/cascade/tools/cleaning/validation.md): Validate your data meets expectations
- [Transform](https://docs.cascade.io/cascade/tools/transform.md)
- [Edit Columns](https://docs.cascade.io/cascade/tools/transform/editcolumns.md): Add new expression-based columns, rename and retype columns
- [Select Columns](https://docs.cascade.io/cascade/tools/transform/selectcolumns.md): Select Columns allows you to keep or drop selected columns from a table.
- [Filter](https://docs.cascade.io/cascade/tools/transform/filter.md): Select records from a table based on row criteria
- [Sort](https://docs.cascade.io/cascade/tools/transform/sort.md): Reorder a table based on row values
- [Pivot](https://docs.cascade.io/cascade/tools/transform/pivot.md): Aggregate the values in a table
- [Unpivot](https://docs.cascade.io/cascade/tools/transform/unpivot.md): Convert column values into rows
- [Deduplicate](https://docs.cascade.io/cascade/tools/transform/dedupe.md): Remove duplicate values in a column
- [Merge](https://docs.cascade.io/cascade/tools/combine.md)
- [Append](https://docs.cascade.io/cascade/tools/combine/append.md): Stack tables with similar columns on top of each other
- [Join](https://docs.cascade.io/cascade/tools/combine/join.md): Combine two tables based on common field
- [Multi Join](https://docs.cascade.io/cascade/tools/combine/multijoin.md): Combine two or more tables based on common field
- [Fuzzy Join](https://docs.cascade.io/cascade/tools/combine/fuzzyjoin.md): Fuzzy Join combines two datasets into a single table, based on a similar shared column.
- [Predictive Modeling](https://docs.cascade.io/cascade/tools/data_science.md)
- [Build Model](https://docs.cascade.io/cascade/tools/data_science/buildmodel.md): Train a predictive model based on training data
- [Apply Model](https://docs.cascade.io/cascade/tools/data_science/applymodel.md): Apply a predictive model to test data
- [Correlate](https://docs.cascade.io/cascade/tools/data_science/varimportance.md): Determine relationships between numeric columns
- [ARIMA Forecast](https://docs.cascade.io/cascade/tools/data_science/arimaforecast.md): Time-series forecasting
- [Flow](https://docs.cascade.io/cascade/tools/flow.md)
- [Conditional](https://docs.cascade.io/cascade/tools/flow/conditional.md)
- [Code](https://docs.cascade.io/cascade/tools/code.md)
- [Python](https://docs.cascade.io/cascade/tools/code/pythoncode.md): Insert custom Python code
- [SQL](https://docs.cascade.io/cascade/tools/code/sql.md)
- [Visualize](https://docs.cascade.io/cascade/tools/visualize.md)
- [Chart](https://docs.cascade.io/cascade/tools/visualize/chart.md)
- [Bar](https://docs.cascade.io/cascade/tools/visualize/chart/bar.md)
- [Line](https://docs.cascade.io/cascade/tools/visualize/chart/line.md)
- [Combo](https://docs.cascade.io/cascade/tools/visualize/chart/combo.md)
- [Scatter](https://docs.cascade.io/cascade/tools/visualize/chart/scatter.md)
- [Histogram](https://docs.cascade.io/cascade/tools/visualize/chart/histogram.md)
- [Box](https://docs.cascade.io/cascade/tools/visualize/chart/box.md)
- [Pie](https://docs.cascade.io/cascade/tools/visualize/chart/pie.md)
- [Area](https://docs.cascade.io/cascade/tools/visualize/chart/area.md)
- [Funnel](https://docs.cascade.io/cascade/tools/visualize/chart/funnel.md)
- [Publish](https://docs.cascade.io/cascade/tools/publish.md)
- [Publish to Data Locker](https://docs.cascade.io/cascade/tools/publish/publish.md): Publish an output to your Data Locker
- [Publish via Email](https://docs.cascade.io/cascade/tools/publish/publish_email.md): Publish via Email sends tables (CSV, XLSX, HYPER) or charts (PNG) to email recipients of your choice.
- [Publish to URL](https://docs.cascade.io/cascade/tools/publish/publish_url.md): Publish to URL sends a table as a CSV to a hosted destination.
- [Embed](https://docs.cascade.io/cascade/tools/publish/embed.md): Embed exposes the interactive content of any table or chart to a third party product via a URL.
- [Functions](https://docs.cascade.io/cascade/functions-and-expressions/functions.md)
- [Aggregate Functions](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate.md)
- [AVERAGE](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/average.md): Averages a list of numbers
- [CORR](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/corr.md): Calculates a correlation coefficient
- [COUNT](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/count.md): Returns the count of all non-null values in a column
- [COUNTD](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/countd.md): Returns count of distinct values within a column
- [COUNTBY](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/countby.md): Counts the number of values within a column, partitioned by the unique values of a separate column
- [COUNTIF](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/countif.md): Counts values based on a condition
- [COUNTIFS](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/countifs.md): Counts values based on multiple conditions
- [COVAR](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/covar.md): Calculates covariance
- [COVARP](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/covarp.md): Calculates population covariance
- [COVARS](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/covars.md): Calculates sample covariance
- [MAX](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/max.md): Finds maximum value in a list of numbers
- [MEDIAN](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/median.md): Finds median value of a list of numbers
- [MIN](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/min.md): Finds minimum value in a list of numbers
- [MAXBY](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/maxby.md): Finds the maximum of a list of numbers, partitioned by the unique values of a separate column
- [MINBY](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/minby.md): Finds the minimum of a list of numbers, partitioned by the unique values of a separate column
- [PERCENTILE](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/percentile.md): Computes nth percentile of a list of numbers
- [STDEV](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/stdev.md): Returns the standard deviation of a list of numbers
- [STDEVP](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/stdevp.md): Returns the standard deviation of a list of numbers
- [STDEVS](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/stdevs.md): Returns the sample standard deviation of a list of numbers
- [SUM](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/sum.md): Sums a list of numbers
- [SUMBY](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/sumby.md): Sums a list of numbers, partitioned by the unique values of a separate column
- [SUMIF](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/sumif.md): Sums values within a column if specified criteria is met
- [VAR](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/var.md): Calculates variance
- [VARP](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/varp.md): Calculates a population variance
- [VARS](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/vars.md): Calculates a sample variance
- [RUNNINGTOTALBY](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/runningtotalby.md): Calculates a running total when grouped by a partition column
- [SIGN](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/runningtotalby/sign.md): Determines the sign of a number
- [SIN](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/runningtotalby/sin.md): Calculates the sine of an angle
- [SQRT](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/runningtotalby/sqrt.md): Takes the square root of a given number
- [SQUARE](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/runningtotalby/square.md): Squares a given number
- [TAN](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/runningtotalby/tan.md): Calculates the tangent of an angle
- [ZN](https://docs.cascade.io/cascade/functions-and-expressions/functions/aggregate/runningtotalby/zn.md): Fill all null values with 0
- [Conversion Functions](https://docs.cascade.io/cascade/functions-and-expressions/functions/conversion.md)
- [TIMESTAMPTODATE](https://docs.cascade.io/cascade/functions-and-expressions/functions/conversion/timestamptodate.md): Converts a timestamp into a date/time value
- [TODATE](https://docs.cascade.io/cascade/functions-and-expressions/functions/conversion/todate.md): Converts text into a date/time value
- [TODECIMAL](https://docs.cascade.io/cascade/functions-and-expressions/functions/conversion/todecimal.md): Converts text into a decimal number
- [TOINT](https://docs.cascade.io/cascade/functions-and-expressions/functions/conversion/toint.md): Converts text into an integer
- [Date/Time Functions](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time.md)
- [DATEADD](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/dateadd.md): Adds or subtracts a specific number of time steps from a date
- [DATEDIF](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/datedif.md): Calculates the number of time steps between two dates
- [DATENAME](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/datename.md): Returns text corresponding to the specified part of a given date
- [DATENORMALIZE](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/datenormalize.md): Converts times to midnight
- [DATEPART](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/datepart.md): Returns the specified part of a given date
- [DATETRUNC](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/datetrunc.md): Truncates a date to the beginning of the specified period
- [DAY](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/day.md): Calculates the day of the month for a given date
- [DAYS](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/days.md): Calculates the number of days between two dates
- [HOUR](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/hour.md): Calculates the hour corresponding to a date/time value
- [ISDATE](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/isdate.md): Determines if a given date is a valid date
- [ISOWEEKDAY](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/isoweekday.md): Returns the ISO8601 weekday of a given date
- [ISOWEEK](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/isoweek.md): Returns the ISO8601 week of a given date
- [ISOQUARTER](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/isoquarter.md): Returns the ISO8601 quarter of a given date
- [ISOYEAR](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/isoyear.md): Returns the ISO8601 year of a given date
- [MAKEDATE](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/makedate.md): Create a date/time value from a given year, month, and day
- [MAKEDATETIME](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/makedatetime.md): Create a date/time value from a given date and time
- [MINUTE](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/minute.md): Calculates the minute corresponding to a date/time value
- [MONTH](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/month.md): Calculates the month for a given date
- [NOW](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/now.md): Returns current timestamp on local system
- [QUARTER](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/quarter.md): Returns the quarter of a given date
- [SECOND](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/second.md): Calculates the second corresponding to a date/time value
- [TODAY](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/today.md): Returns the current date
- [WEEK](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/week.md): Calculates the week for a given date
- [WEEKDAY](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/weekday.md): Converts a date into an integer corresponding to a day of the week
- [YEAR](https://docs.cascade.io/cascade/functions-and-expressions/functions/date-time/year.md): Calculates the year for a given date
- [Logical Functions](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical.md)
- [AND](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/and.md): Returns true if all items are true, otherwise returns false
- [BETWEEN](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/between.md): Determines if given value is between two boundary values
- [CASE](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/case.md): Returns specified values when condition is met
- [CHOOSE](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/choose.md): Finds the value located at a specified index
- [CONTAINSWITHIN](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/containswithin.md): Returns true if the given value exists within a column or list of values.
- [IF](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/if.md): Tests whether expression is true or false and returns desired values accordingly
- [IFS](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/ifs.md): Implements multiple if-then statements simultaneously
- [IIF](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/iif.md): An if-then statement with capability of returning a third, unique value if condition is null
- [IN](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/in.md): Returns true if the given value exists within a column or list of values.
- [IFNULL](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/ifnull.md): Returns values dependent on if input values are null or not
- [ISBOOLEAN](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/isboolean.md): Determine if given values are boolean
- [ISDECIMAL](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/isdecimal.md): Determine if given values are decimals
- [ISDURATION](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/isduration.md): Determine if given values are durations
- [ISINTEGER](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/isinteger.md): Determine if given values are integers
- [ISNULL](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/isnull.md): Returns true for null values and false otherwise
- [ISNUMBER](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/isnumber.md): Determine if given values are numbers
- [ISSTRING](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/isstring.md): Determine if given values are strings
- [ISUNIQUE](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/isunique.md): Determines if the values in a column are unique
- [NOT](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/not.md): Returns true when a condition is false and false otherwise
- [NULL](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/null.md): Returns null value
- [OR](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/or.md): Returns true if any of multiple conditions are true, otherwise returns false
- [SWITCH](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/switch.md): Switches values with new values if original value matches key
- [ALL](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/all.md): Determine if all elements of a column are true
- [TOSTRING](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/all/tostring.md): Convert a value into a string
- [ANY](https://docs.cascade.io/cascade/functions-and-expressions/functions/logical/any.md): Determine if any elements of a column are true
- [Math Functions](https://docs.cascade.io/cascade/functions-and-expressions/functions/math.md)
- [ABS](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/abs.md): Calculates the absolute value of a number
- [ACOS](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/acos.md): Calculates the arc cosine of a number
- [ASIN](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/asin.md): Calculates the arc sine of a number
- [ATAN](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/atan.md): Calculates the arc tangent of a number
- [ATAN2](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/atan2.md): Calculates the arc tangent of an ordered pair
- [CEILING](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/ceiling.md): Rounds a given number up
- [COS](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/cos.md): Calculates the cosine of an angle
- [COT](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/cot.md): Calculates the cotangent of an angle
- [COSEC](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/cosec.md): Calculates the cosecant of an angle
- [DEGREES](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/degrees.md): Converts radians to degrees.
- [DIV](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/div.md): Returns the integer portion of a division operation
- [EVEN](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/even.md): Rounds a number up to the nearest even integer
- [EXPONENTIAL](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/exponential.md): Exponential function
- [FILLINFINITY](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/fillinfinity.md): Replace infinity values within input value
- [FLOOR](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/floor.md): Rounds a given number down
- [HAVERSINE](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/haversine.md): Calculates Haversine distance between coordinates
- [LOG](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/log.md): Logarithm function
- [LN](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/ln.md): Natural logarithm function
- [ODD](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/odd.md): Rounds a number up to the nearest odd integer
- [MODULO](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/modulo.md): Calculates the remainder of a division operation
- [PERCENTILEOFVALUE](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/percentileofvalue.md): Calculate percentiles based on data
- [PERCENTILEVALUE](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/percentilevalue.md): Calculate value(s) from specified percentiles
- [PI](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/pi.md): Returns the PI value
- [POWER](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/power.md): Raises a number to a specified exponent
- [RADIANS](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/radians.md): Converts degrees to radians.
- [RANDOM](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/random.md): Returns a random value between 0 and 1
- [ROUND](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/round.md): Rounds a number or list of numbers
- [SEC](https://docs.cascade.io/cascade/functions-and-expressions/functions/math/sec.md): Calculates the secant of an angle
- [Table Functions](https://docs.cascade.io/cascade/functions-and-expressions/functions/table.md)
- [ENCODE](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/encode.md): Returns integers for each unique string value in a referenced column.
- [INDEX](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/index.md): Returns the value at a given index inside a column.
- [INDEXBY](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/indexby.md): Returns a value of a specific index within a column, partitioned by the unique values of a separate column
- [FILLNULL](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/fillnull.md): Fills null values with specified replacement value
- [FIRSTBY](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/firstby.md): Finds the first element within a column, partitioned by the unique values of a separate column
- [GENERATEUNIQUEID](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/generateuniqueid.md): Generates Unique IDs
- [LASTBY](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/lastby.md): Finds the last element within a column, partitioned by the unique values of a separate column
- [LOOKUP](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/lookup.md): Returns a row offset a given number of rows from the current row
- [MATCH](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/match.md): Returns the index of a matched value
- [NTH](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/nth.md): Returns the nth element of a given column
- [OFFSET](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/offset.md): Offsets values within a column
- [OFFSETBY](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/offsetby.md): Offsets values within a column, partitioned by the unique values of a separate column
- [PREVIOUSVALUE](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/previousvalue.md): Calculate a function's result based on the previous row's values
- [RANK](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/rank.md): Returns the rank of each element in a column
- [RANKBY](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/rankby.md): Ranks values within a column, partitioned by the unique values of a separate column
- [RECORDID](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/recordid.md): Generates IDs for each row in a table
- [ROLLINGAVERAGE](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/rollingaverage.md): Calculates the rolling averages of a column
- [ROW](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/row.md): Returns the current row number
- [RUNNINGAVERAGE](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/runningaverage.md): Calculates the running average of a column
- [RUNNINGMAX](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/runningmax.md): Calculates the running maximum of a column
- [RUNNINGMIN](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/runningmin.md): Calculates the running minimum of a column
- [RUNNINGSTDEV](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/runningstdev.md): Calculates the running standard deviation of a column
- [RUNNINGTOTAL](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/runningtotal.md): Calculates the running total of a column
- [WINDOWAVERAGE](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowaverage.md): Calculates rolling or static window average
- [WINDOWMAX](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowmax.md): Calculates rolling or static window maximum
- [WINDOWMIN](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowmin.md): Calculates rolling or static window minimum
- [WINDOWCOUNT](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowcount.md): Calculates rolling or static window count
- [WINDOWSUM](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowsum.md): Calculates rolling or static window sum
- [SEQUENCE](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/sequence.md): Create a sequence of numeric values
- [WINDOWMEDIAN](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowmedian.md): Calculates rolling or static window median
- [WINDOWSTDEV](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowstdev.md): Calculates rolling or static window population standard deviation
- [WINDOWSTDEVP](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowstdevp.md): Calculates rolling or static window population standard deviation
- [WINDOWSTDEVS](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowstdevs.md): Calculates rolling or static window sample standard deviation
- [WINDOWVAR](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowvar.md): Calculates rolling or static window average
- [WINDOWVARP](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowvarp.md): Calculates rolling or static window average
- [WINDOWVARS](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowvars.md): Calculates rolling or static window sample variance
- [WINDOWCORR](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowcorr.md): Calculates rolling or static window average
- [WINDOWCOVAR](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowcovar.md): Calculates rolling or static window population covariance
- [WINDOWCOVARP](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowcovarp.md): Calculates rolling or static window average
- [WINDOWCOVARS](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/windowcovars.md): Calculates rolling or static window sample covariance
- [SMOOTHEDAVERAGE](https://docs.cascade.io/cascade/functions-and-expressions/functions/table/smoothedaverage.md): Calculates the smoothed averages of a column
- [Text Functions](https://docs.cascade.io/cascade/functions-and-expressions/functions/text.md)
- [ASCII](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/ascii.md): Returns the ASCII code for a given character
- [CHAR](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/char.md): Returns the character for a given ASCII code
- [CONCAT](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/concat.md): Concatenates all inputs into a string
- [CONTAINS](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/contains.md): Checks if a given column contains specified text
- [ENDSWITH](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/endswith.md): Determines whether a given string ends with a specified substring
- [FIND](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/find.md): Finds the index of a substring within a string
- [FINDNTH](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/findnth.md): Returns the nth occurrence of a substring within a string
- [ISEMPTY](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/isempty.md): Determines if value(s) are empty strings
- [JSONPARSE](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/jsonparse.md): Extracts a single field from a json
- [LEFT](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/left.md): Returns a certain numbers of characters within a string, counting from the left
- [LENGTH](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/length.md): Returns the number of characters within a given text
- [LOWER](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/lower.md): Returns a string, converted to lowercase
- [LTRIM](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/ltrim.md): Removes leading whitespace
- [MID](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/mid.md): Returns a portion of input text beginning at specified location
- [PROPER](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/proper.md): Convert text strings to proper case
- [RIGHT](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/right.md): Returns a certain numbers of characters within a string, counting from the right
- [RTRIM](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/rtrim.md): Removes trailing whitespace
- [SPACE](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/space.md): Produces desired number of spaces
- [SPLIT](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/split.md): Split a string based on a given delimiter
- [STARTSWITH](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/startswith.md): Determines whether a given string begins with a specified substring
- [TRIM](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/trim.md): Removes leading, trailing and repeated whitespace from a text string
- [SUBSTITUTE](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/substitute.md): Substitutes all instances of one value with another value
- [UPPER](https://docs.cascade.io/cascade/functions-and-expressions/functions/text/upper.md): Returns a string, converted to uppercase
- [Building Expressions](https://docs.cascade.io/cascade/functions-and-expressions/building-expressions.md)
- [Expression Operators](https://docs.cascade.io/cascade/functions-and-expressions/building-expressions/expression-operators.md)
- [Guide to Window Functions](https://docs.cascade.io/cascade/functions-and-expressions/building-expressions/guide-to-window-functions.md): Window functions partition a table before they run, making them very useful when working with large datasets
- [Cascade FAQs](https://docs.cascade.io/cascade/cascade-faqs.md): This section contains a library of tutorials and how-to guides, organized into different categories to make it easier for users to find what they need.
- [Best Practices](https://docs.cascade.io/cascade/cascade-faqs/best-practices.md): Review best practices to build efficient and well organized workflows
- [How to add a total row to a table](https://docs.cascade.io/cascade/cascade-faqs/best-practices/how-to-add-a-total-row-to-a-table.md): Learn our easiest way to append a Total Row to your table
- [How to leave comments on a workflow](https://docs.cascade.io/cascade/cascade-faqs/best-practices/how-to-leave-comments-on-a-workflow.md): Cascade allows for annotation and customization
- [How to add new columns in the Edit Columns tool](https://docs.cascade.io/cascade/cascade-faqs/best-practices/how-to-add-new-columns-in-the-edit-columns-tool.md): Adding columns to your data in Cascade
- [Setting up a New Table tool](https://docs.cascade.io/cascade/cascade-faqs/best-practices/setting-up-a-new-table-tool.md): Storing data in workflow with New Table tool
- [How to rename a tool](https://docs.cascade.io/cascade/cascade-faqs/best-practices/how-to-rename-a-tool.md): Renaming tools is an effective way to make your workflow more organized and comprehensible
- [Knowledge Based](https://docs.cascade.io/cascade/cascade-faqs/knowledge-based.md): Important things to remember when starting out with Cascade
- [How to change Data Types in Cascade](https://docs.cascade.io/cascade/cascade-faqs/knowledge-based/how-to-change-data-types-in-cascade.md): Easily change data types in Cascade
- [How to remove columns from a table in Cascade](https://docs.cascade.io/cascade/cascade-faqs/knowledge-based/how-to-remove-columns-from-a-table-in-cascade.md): Use the Select Columns tool to remove columns from a table in Cascade
- [How to rename columns in Cascade](https://docs.cascade.io/cascade/cascade-faqs/knowledge-based/how-to-rename-columns-in-cascade.md): Make data more comprehendible with the Edit Columns tool
- [Understanding the Join options in the Cascade Join tool](https://docs.cascade.io/cascade/cascade-faqs/knowledge-based/understanding-the-join-options-in-the-cascade-join-tool.md): Exploring different types of joins in Cascade
- [How to connect tools to each other](https://docs.cascade.io/cascade/cascade-faqs/knowledge-based/how-to-connect-tools-to-each-other.md): Connecting tools in Cascade
- [Import](https://docs.cascade.io/cascade/cascade-faqs/import.md): Additional resources for Importing data into Cascade
- [How to Import an Excel File into Cascade](https://docs.cascade.io/cascade/cascade-faqs/import/how-to-import-an-excel-file-into-cascade.md): Learn how to upload an Excel file into Cascade
- [How to Import a CSV File into Cascade](https://docs.cascade.io/cascade/cascade-faqs/import/how-to-import-a-csv-file-into-cascade.md): Learn how to upload a CSV File into Cascade
- [How to import a CSV file into the Data Locker](https://docs.cascade.io/cascade/cascade-faqs/import/how-to-import-a-csv-file-into-the-data-locker.md): Learn how to import a CSV File into the Data Locker
- [Functions and Expressions](https://docs.cascade.io/cascade/cascade-faqs/functions-and-expressions.md): More on functions and expressions using Expression Editors in Cascade
- [How to write an IN() statement with multiple variables](https://docs.cascade.io/cascade/cascade-faqs/functions-and-expressions/how-to-write-an-in-statement-with-multiple-variables.md): Using the IN() function to with multiple variables
- [How to Remove null Records with a Filter tool](https://docs.cascade.io/cascade/cascade-faqs/functions-and-expressions/how-to-remove-null-records-with-a-filter-tool.md): Remove null records with a Filter tool
- [How to write an IF Statement in Cascade](https://docs.cascade.io/cascade/cascade-faqs/functions-and-expressions/how-to-write-an-if-statement-in-cascade.md): Writing IF statements in Cascade made easy
- [How to replace null values with 0](https://docs.cascade.io/cascade/cascade-faqs/functions-and-expressions/how-to-replace-null-values-with-0.md): Use an IF statement or Find Replace tool to replace null values
- [Troubleshooting](https://docs.cascade.io/cascade/cascade-faqs/troubleshooting.md): See if it's happened before
- [What does it mean if my workflow won’t load?](https://docs.cascade.io/cascade/cascade-faqs/troubleshooting/what-does-it-mean-if-my-workflow-wont-load.md): It happens sometimes, but nothing to fear
- [Why can’t I connect my tool to other tools?](https://docs.cascade.io/cascade/cascade-faqs/troubleshooting/why-cant-i-connect-my-tool-to-other-tools.md): Can’t connect a tool
- [Why are there duplicate records after my Join tool?](https://docs.cascade.io/cascade/cascade-faqs/troubleshooting/why-are-there-duplicate-records-after-my-join-tool.md): Using a Join tool in your Cascade workflows can sometimes give rise to duplicate records
- [Change Log](https://docs.cascade.io/cascade/change-log.md): Hey ma, we shipped code, here's what changed


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://docs.cascade.io/cascade/introduction/welcome-to-cascade.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
