# 3 Column Comparison Table Across 3 Datastreams

**URL:** <https://discuss.elastic.co/t/3-column-comparison-table-across-3-datastreams/381530>\
**Category:** Kibana\
**Created:** [September 2, 2025, 6:29pm UTC](https://discuss.elastic.co/t/3-column-comparison-table-across-3-datastreams/381530 "2025-09-02T18:29:44Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![erikg](https://avatars.discourse-cdn.com/v4/letter/e/91b2a8/32.png) [@erikg](https://discuss.elastic.co/u/erikg)\
**Post date:** [September 2, 2025, 6:29pm UTC](https://discuss.elastic.co/t/3-column-comparison-table-across-3-datastreams/381530/1 "2025-09-02T18:29:45Z")

</div>

Hello,

I think I might know the answer but let me know if I am wrong. I have 3 datastream datasets. They contain similar fields and I want to build a table that will compare all 3 based on certain criteria.  
Like this:

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/5/2/52214221c44cd89c5f8bbade91fa1edb8183f8bb.jpeg)

I want to use this table for insights into Product1 (using the example above) matches each area or dataset.

I am assuming this is essentially JOINs in Elastic which is currently limited to lookup indices not datastreams.

I am thinking the only way to go about doing this using Pandas (outside of elastic) to merge these datastream and then write to a new index?

---

<div class="post-metadata">

**Author:** ![Tortoise](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tortoise/32/147587_2.png) [@Tortoise](https://discuss.elastic.co/u/Tortoise)\
**Post date:** [September 9, 2025, 6:59am UTC](https://discuss.elastic.co/t/3-column-comparison-table-across-3-datastreams/381530/2 "2025-09-09T06:59:42Z")

</div>

Hello @erikg

Can we use ES|QL , if we consider datastreams as product-a,product-b,product-c & all has similar columns :

> **ES|QL query**
>
> ```auto
> FROM product*
> | EVAL 
> range_10_20 = (value >= 10 AND value < 20),
> range_20_30 = (value >= 20 AND value < 30),
> range_30_40 = (value >= 30 AND value < 40)
> | STATS 
> max(range_10_20),
> max(range_20_30),
> max(range_30_40)
> BY product
> | SORT product
> 
> ```

Output :

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/4/b/4bd159f6b0f6c8d0c59b89390ef78e680d677c4f.png)

Thanks!!
