📓
BK Tricks
<- back to the bodik.tech
  • BK Tricks
  • AI\ML
    • Using PostgreSQL with pgvector extension to store and search embeddings
    • JavaScript-based tools
  • Databases
    • PostgreSQL
      • How to Use HOT Updates in PostgreSQL to Boost Your UPDATE Queries
      • Maximizing the Potential of Embeddings with PGvector: A Comprehensive Guide
    • Elasticsearch
      • The impact of Elasticsearch segments on search speed
      • How to aggregate Elasticsearch results by the timestamp on day interval?
      • Mastering Vector Search in Elasticsearch: Mapping Index for KNN
    • Prometheus
      • What is Prometheus and what is it usually used for?
      • How to create a simple Prometheus exporter?
    • Clickhouse
      • How to make a difference of two arrays in ClickHouse?
      • Materialized View that parses JSON or nested JSON from the string field of another table
      • Attach S3 as a storage engine to ClickHouse
      • Table with TTL to S3
      • Partition ClickHouse table based on unique string hash
      • Create a connection to other ClickHouse instance
  • Infrastructure
    • AWS
      • SAM
        • Schema to create a resource of DynamoDB table using SAM
        • Example of enabling streaming functionality of DynamoDB table using SAM resource
        • Schema to create Lambda function resource using SAM
        • Adding environment variables to Lambda function resource using SAM
        • Adding a scheduled timer to start Lambda function resource using SAM
        • Reading stream from DynamoDB by Lambda function declared using SAM
        • Schema to create a resource of SQS queue using SAM
      • CloudFront
        • How to make redirect using Lambda@Edge?
  • Programming
    • JavaScript
      • Convert hexadecimal string to an array of Uint8 values
      • How to decrypt data encoded with NaCl cryptographic algorithm using NodeJS?
      • How to add a property to JavaScript object if it is not empty or null?
  • Tools
    • Kafka
      • Useful tools
      • How to view all of the offsets for some consumer groups in Kafka using CLI?
      • How to set Kafka offsets of a consumer group to a predefined list for all partitions at once?
  • Math
    • Transform the number from one numeric range to another
  • Frontend
    • Useful resources
Powered by GitBook
On this page
  1. Databases
  2. Clickhouse

How to make a difference of two arrays in ClickHouse?

One of the great things about ClickHouse is its support for arrays, which can be used to store and manipulate large sets of data.

The process of making a difference of two arrays in ClickHouse is relatively straightforward. The basic idea is to use the arrayFilter function to filter out any elements that are present in both arrays. To do this, we will use a simple query that looks like this:

select arrayFilter(x -> has(firstArray, x) != true, secondArray) diff;

This query takes two arrays, firstArray and secondArray, and filters out any elements that are present in both arrays. The result of this query is a new array, diff, which contains only the elements that are unique to the secondArray.

The key to this query is the arrayFilter function, which takes two arguments: a lambda function, and an array. The lambda function is used to filter out elements that are not unique to the secondArray, while the array is the one we want to filter. The has function used in the lambda function is a built-in ClickHouse function that returns true if the element passed to it is present in the specified array.

PreviousClickhouseNextMaterialized View that parses JSON or nested JSON from the string field of another table

Last updated 2 years ago