Skip to main content

Recursion example with SQL


I asked my friend Chatty, can you use recursion in SQL? For example I have a table (ID, value) ordered by increasing ID. Can you guide me through using recursion to select all the rows of consecutive repeated values using and creating an SQLite database. Provide the small sample data.

Is there a better way to do this?

A More Modern Alternative (Window Functions)
In real-world SQL, this problem is usually solved more efficiently using window functions like:

LAG()
ROW_NUMBER()
SUM() OVER

But recursion is excellent for learning traversal logic and hierarchical thinking.

Recursion example using sqlite on termux

DROP TABLE IF EXISTS sample;

CREATE TABLE sample (
    id INTEGER PRIMARY KEY,
    value TEXT
);

INSERT INTO sample (id, value) VALUES
(1, 'A'),
(2, 'A'),
(3, 'A'),
(4, 'B'),
(5, 'B'),
(6, 'C'),
(7, 'A'),
(8, 'A'),
(9, 'D'),
(10, 'D'),
(11, 'D'),
(12, 'D');

WITH RECURSIVE grouped AS (

    SELECT
        id,
        value,
        1 AS group_num
    FROM sample
    WHERE id = (SELECT MIN(id) FROM sample)

    UNION ALL

    SELECT
        s.id,
        s.value,

        CASE
            WHEN s.value = g.value
            THEN g.group_num
            ELSE g.group_num + 1
        END

    FROM sample s
    JOIN grouped g
        ON s.id = g.id + 1
)

SELECT
    value,
    MIN(id) AS start_id,
    MAX(id) AS end_id,
    COUNT(*) AS consecutive_count
FROM grouped
GROUP BY group_num, value
HAVING COUNT(*) > 1;

Comments

Popular posts from this blog

Below the surface

This is a chapter from my eleventh book called Quotation Marks Sparks . __________ "You can't stop the waves, but you can learn to surf." - Jon Kabat-Zinn __________ I was looking at quotes that hit hard and this quote stood out to me. It seems mundane and obvious and often repeated. Life is about how we respond to the inevitable. It is not what happens to us but how we respond. I had to ask myself to dig deeper and look below the surface. Then I saw that when we surf we really become the waves. We become friends with the waves. The waves and us are the same. Further, the waves are created by us and in our heads. We can control the waves because who can surf all the time? Sometimes we just have to come to shore and build sand castles on shore. I asked my friend Gemini for feedback and he said that I was right, the Jon Kabat-Zinn quote initially seems like a simple call for resilience, but my deeper dive reveals profound layers. The idea that we can move beyond merely rea...

Rain

This is a chapter from my latest book called (G)rains (o)f san(d)s. Learn more about the book here . Thank you God for the rain. It has just started raining here. I can hear the pitter patter on the roof. I can see the dimmed light through the window. The greenery in the yard is enjoying every chance of rain. The days have been extra hot this year. They say we are experiencing a super el nino in Trinidad. Given this every bit of rainfall feels special. Water is life. Without water there can be no life as we know it. Rain is part of the water cycle. Rain falling is like therapy. A calm state comes over my body. My mind relaxes. I appreciate my home and my shelter to keep me dry and safe. The rain is mentioned as a sign from God in the Quran and how it gives life to a lifeless land. The rain complements the sunshine as part of nature's balance. Sometimes we have to endure storms and floods and even droughts but there are lessons in these events. Community spirit is heightened and our...

Nur al-Quran

It is 1037am and I have decided to write. I have been listening to the Quran more and more. I have also been trying to learn Arabic casually through social media. I am nearing the end of my second reading of the English Quran. The Quran is the word of God and God also tells us to follow the sunnah and life of the prophet (pbuh). The Quran is a miracle. The more I interact with the Quran, the more complete I feel. It gives my clarity. I have a purpose. I have goals. I have things I should be doing. Islam is a way of life and it builds character. Sometimes I listen to the Quran to forget about this world. This world is not my home. My home is in the hereafter and God willing in heaven. The more I draw closer to the Quran, the more beauty I see and hear and feel. Same goes to God. Same goes for the life of the prophet (pbuh). Same for Islam. If these are all the things I have in this world, I am happy. Reminds me of one of the duas I say daily. I am content with Allah as my Lord, Islam as...