<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <!-- Article hub -->
  <url>
    <loc>https://datakatana.ai/en/articles</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles"/>
  </url>
  <url>
    <loc>https://datakatana.ai/ru/articles</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles"/>
  </url>
  <url>
    <loc>https://datakatana.ai/kz/articles</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles"/>
  </url>
  <!-- Static articles: window functions -->
  <url>
    <loc>https://datakatana.ai/en/articles/sql-window-functions-rows-vs-range-metrics</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/sql-window-functions-rows-vs-range-metrics"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/okonnye-funkcii-rows-vs-range-metriki"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/teri-terez-funkciyalary-rows-vs-range-metrikalar"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/sql-window-functions-rows-vs-range-metrics"/>
  </url>
  <url>
    <loc>https://datakatana.ai/ru/articles/okonnye-funkcii-rows-vs-range-metriki</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/sql-window-functions-rows-vs-range-metrics"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/okonnye-funkcii-rows-vs-range-metriki"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/teri-terez-funkciyalary-rows-vs-range-metrikalar"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/sql-window-functions-rows-vs-range-metrics"/>
  </url>
  <url>
    <loc>https://datakatana.ai/kz/articles/teri-terez-funkciyalary-rows-vs-range-metrikalar</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/sql-window-functions-rows-vs-range-metrics"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/okonnye-funkcii-rows-vs-range-metriki"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/teri-terez-funkciyalary-rows-vs-range-metrikalar"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/sql-window-functions-rows-vs-range-metrics"/>
  </url>
  <!-- COUNT DISTINCT -->
  <url>
    <loc>https://datakatana.ai/en/articles/count-distinct-pre-aggregated-marts-reports</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/count-distinct-pre-aggregated-marts-reports"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/pochemu-count-distinct-i-vitriny-lomayut-otchoty"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/count-distinct-zhinaktalgan-mart-eskertulerdi-buzady"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/count-distinct-pre-aggregated-marts-reports"/>
  </url>
  <url>
    <loc>https://datakatana.ai/ru/articles/pochemu-count-distinct-i-vitriny-lomayut-otchoty</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/count-distinct-pre-aggregated-marts-reports"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/pochemu-count-distinct-i-vitriny-lomayut-otchoty"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/count-distinct-zhinaktalgan-mart-eskertulerdi-buzady"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/count-distinct-pre-aggregated-marts-reports"/>
  </url>
  <url>
    <loc>https://datakatana.ai/kz/articles/count-distinct-zhinaktalgan-mart-eskertulerdi-buzady</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/count-distinct-pre-aggregated-marts-reports"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/pochemu-count-distinct-i-vitriny-lomayut-otchoty"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/count-distinct-zhinaktalgan-mart-eskertulerdi-buzady"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/count-distinct-pre-aggregated-marts-reports"/>
  </url>
  <!-- Idempotent pipelines -->
  <url>
    <loc>https://datakatana.ai/en/articles/idempotent-pipelines-merge-upsert-scd2</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/idempotent-pipelines-merge-upsert-scd2"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/idempotentnye-payplayny-merge-on-conflict-scd2"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/idempotentti-paypaynalmerge-upsert-scd2"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/idempotent-pipelines-merge-upsert-scd2"/>
  </url>
  <url>
    <loc>https://datakatana.ai/ru/articles/idempotentnye-payplayny-merge-on-conflict-scd2</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/idempotent-pipelines-merge-upsert-scd2"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/idempotentnye-payplayny-merge-on-conflict-scd2"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/idempotentti-paypaynalmerge-upsert-scd2"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/idempotent-pipelines-merge-upsert-scd2"/>
  </url>
  <url>
    <loc>https://datakatana.ai/kz/articles/idempotentti-paypaynalmerge-upsert-scd2</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/idempotent-pipelines-merge-upsert-scd2"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/idempotentnye-payplayny-merge-on-conflict-scd2"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/idempotentti-paypaynalmerge-upsert-scd2"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/idempotent-pipelines-merge-upsert-scd2"/>
  </url>
  <!-- Query plans -->
  <url>
    <loc>https://datakatana.ai/en/articles/sql-query-plans-explain-analyze-checklist</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/sql-query-plans-explain-analyze-checklist"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/chteniye-planov-zaprosov-explain-analyze"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/sql-suras-josparlarin-oku-explain-analyze"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/sql-query-plans-explain-analyze-checklist"/>
  </url>
  <url>
    <loc>https://datakatana.ai/ru/articles/chteniye-planov-zaprosov-explain-analyze</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/sql-query-plans-explain-analyze-checklist"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/chteniye-planov-zaprosov-explain-analyze"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/sql-suras-josparlarin-oku-explain-analyze"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/sql-query-plans-explain-analyze-checklist"/>
  </url>
  <url>
    <loc>https://datakatana.ai/kz/articles/sql-suras-josparlarin-oku-explain-analyze</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://datakatana.ai/en/articles/sql-query-plans-explain-analyze-checklist"/>
    <xhtml:link rel="alternate" hreflang="ru" href="https://datakatana.ai/ru/articles/chteniye-planov-zaprosov-explain-analyze"/>
    <xhtml:link rel="alternate" hreflang="ru-KZ" href="https://datakatana.ai/kz/articles/sql-suras-josparlarin-oku-explain-analyze"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://datakatana.ai/en/articles/sql-query-plans-explain-analyze-checklist"/>
  </url>
</urlset>
