Pular para o conteúdo

Changelog

New updates and improvements at Cloudflare.

Workers Analytics Engine SQL now supports filtering using HAVING and LIKE

You can now use the HAVING clause and LIKE pattern matching operators in Workers Analytics Engine.

Workers Analytics Engine allows you to ingest and store high-cardinality data at scale and query your data through a simple SQL API.

Filtering using HAVING

The HAVING clause complements the WHERE clause by enabling you to filter groups based on aggregate values. While WHERE filters rows before aggregation, HAVING filters groups after aggregation is complete.

You can use HAVING to filter groups where the average exceeds a threshold:

SELECT
    blob1 AS probe_name,
    avg(double1) AS average_temp
FROM temperature_readings
GROUP BY probe_name
HAVING average_temp > 10

You can also filter groups based on aggregates such as the number of items in the group:

SELECT
    blob1 AS probe_name,
    count() AS num_readings
FROM temperature_readings
GROUP BY probe_name
HAVING num_readings > 100

Pattern matching using LIKE

The new pattern matching operators enable you to search for strings that match specific patterns using wildcard characters:

  • LIKE - case-sensitive pattern matching
  • NOT LIKE - case-sensitive pattern exclusion
  • ILIKE - case-insensitive pattern matching
  • NOT ILIKE - case-insensitive pattern exclusion

Pattern matching supports two wildcard characters: % (matches zero or more characters) and _ (matches exactly one character).

You can match strings starting with a prefix:

SELECT *
FROM logs
WHERE blob1 LIKE 'error%'

You can also match file extensions (case-insensitive):

SELECT *
FROM requests
WHERE blob2 ILIKE '%.jpg'

Another example is excluding strings containing specific text:

SELECT *
FROM events
WHERE blob3 NOT ILIKE '%debug%'

Ready to get started?

Learn more about the HAVING clause or pattern matching operators in the Workers Analytics Engine SQL reference documentation.

More SQL aggregate, date and time functions available in Workers Analytics Engine

You can now perform more powerful queries directly in Workers Analytics Engine with a major expansion of our SQL function library.

Workers Analytics Engine allows you to ingest and store high-cardinality data at scale (such as custom analytics) and query your data through a simple SQL API.

Today, we've expanded Workers Analytics Engine's SQL capabilities with several new functions:

New aggregate functions:

  • countIf() - count the number of rows which satisfy a provided condition
  • sumIf() - calculate a sum from rows which satisfy a provided condition
  • avgIf() - calculate an average from rows which satisfy a provided condition

New date and time functions:

  • toYear()
  • toMonth()
  • toDayOfMonth()
  • toDayOfWeek()
  • toHour()
  • toMinute()
  • toSecond()
  • toStartOfYear()
  • toStartOfMonth()
  • toStartOfWeek()
  • toStartOfDay()
  • toStartOfHour()
  • toStartOfFifteenMinutes()
  • toStartOfTenMinutes()
  • toStartOfFiveMinutes()
  • toStartOfMinute()
  • today()
  • toYYYYMM()

Ready to get started?

Whether you're building usage-based billing systems, customer analytics dashboards, or other custom analytics, these functions let you get the most out of your data. Get started with Workers Analytics Engine and explore all available functions in our SQL reference documentation.

Workers Analytics Engine adds supports for new SQL functions

You can now perform more powerful queries directly in Workers Analytics Engine with a major expansion of our SQL function library.

Workers Analytics Engine allows you to ingest and store high-cardinality data at scale (such as custom analytics) and query your data through a simple SQL API.

Today, we've expanded Workers Analytics Engine's SQL capabilities with several new functions:

New aggregate functions:

  • argMin() - Returns the value associated with the minimum in a group
  • argMax() - Returns the value associated with the maximum in a group
  • topK() - Returns an array of the most frequent values in a group
  • topKWeighted() - Returns an array of the most frequent values in a group using weights
  • first_value() - Returns the first value in an ordered set of values within a partition
  • last_value() - Returns the last value in an ordered set of values within a partition

New bit functions:

  • bitAnd() - Returns the bitwise AND of two expressions
  • bitCount() - Returns the number of bits set to one in the binary representation of a number
  • bitHammingDistance() - Returns the number of bits that differ between two numbers
  • bitNot() - Returns a number with all bits flipped
  • bitOr() - Returns the inclusive bitwise OR of two expressions
  • bitRotateLeft() - Rotates all bits in a number left by specified positions
  • bitRotateRight() - Rotates all bits in a number right by specified positions
  • bitShiftLeft() - Shifts all bits in a number left by specified positions
  • bitShiftRight() - Shifts all bits in a number right by specified positions
  • bitTest() - Returns the value of a specific bit in a number
  • bitXor() - Returns the bitwise exclusive-or of two expressions

New mathematical functions:

  • abs() - Returns the absolute value of a number
  • log() - Computes the natural logarithm of a number
  • round() - Rounds a number to a specified number of decimal places
  • ceil() - Rounds a number up to the nearest integer
  • floor() - Rounds a number down to the nearest integer
  • pow() - Returns a number raised to the power of another number

New string functions:

  • lowerUTF8() - Converts a string to lowercase using UTF-8 encoding
  • upperUTF8() - Converts a string to uppercase using UTF-8 encoding

New encoding functions:

  • hex() - Converts a number to its hexadecimal representation
  • bin() - Converts a string to its binary representation

New type conversion functions:

  • toUInt8() - Converts any numeric expression, or expression resulting in a string representation of a decimal, into an unsigned 8 bit integer

Ready to get started?

Whether you're building usage-based billing systems, customer analytics dashboards, or other custom analytics, these functions let you get the most out of your data. Get started with Workers Analytics Engine and explore all available functions in our SQL reference documentation.