---
title: 【Snowflake】lead/lag関数を使用して歯抜けのチェックをしよう
description: 歯抜けをわかりやすく表示するSQLについて解説します。
---

[Snowflake Knowledge - INSIGHT LAB](https://knowledge.insight-lab.co.jp/snowflake)

# [【Snowflake】lead/lag関数を使用して歯抜けのチェックをしよう](https://knowledge.insight-lab.co.jp/snowflake/-snowflake-lead/lag-function-check-for-missing-teeth)

 作成者: [bird](https://knowledge.insight-lab.co.jp/snowflake/author/bird)｜2023年7月24日

## 歯抜けのチェックをしたい

日ごとの集計テーブルにおいて、歯抜けとなっている日がどれくらいあるか調べる機会がありました。

シンプルにdistinctをかけるだけでは一目でわかりづらいので、少し工夫してみました。

lead/lag関数についての説明は割愛いたします。

[https://docs.snowflake.com/ja/sql-reference/functions/lead](https://docs.snowflake.com/ja/sql-reference/functions/lead)

[https://docs.snowflake.com/ja/sql-reference/functions/lag](https://docs.snowflake.com/ja/sql-reference/functions/lag)

### 出来上がったクエリ

 

previous\_day：lag関数によって呼び出した1つ前の日付

not\_enough：previous\_dayとの差（歯抜け日数）

を表しています。

上の例では、

・2023-04-04と2023-04-02の間が1日歯抜け（2023-04-03）

・2023-04-16と2023-04-10の間が5日歯抜け（2023-04-11~2023-04-15）

・2023-04-30と2023-04-21の間が8日歯抜け（2023-04-22~2023-04-29）

ということがわかります。

調査する日付けの範囲がもっと広い場合は、上記クエリをサブクエリ化し「where not\_enough > 0」を加えると歯抜けのあるレコードのみ表示することができます。

lead関数を使用するときは（order by $1 desc）とすると同じ結果になります。

 

上記のクエリの良い点は、大体どのくらい歯抜けがあるか数字で分かるところです。

これからもどんどんリカバリ業務の効率化をしていきたいですね。

[完全な記事を表示](https://knowledge.insight-lab.co.jp/snowflake/-snowflake-lead/lag-function-check-for-missing-teeth)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "bird"
  },
  "dateModified" : "2023-07-24T06:20:14.109Z",
  "datePublished" : "2023-07-24T06:20:13Z",
  "headline" : "【Snowflake】lead/lag関数を使用して歯抜けのチェックをしよう",
  "image" : {
    "@type" : "ImageObject",
    "height" : 500,
    "url" : "https://download.insight-lab.co.jp/hubfs/Snowflake/Shiratori/%E3%80%90Snowflake%E3%80%91leadlag%E9%96%A2%E6%95%B0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E6%AD%AF%E6%8A%9C%E3%81%91%E3%81%AE%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%92%E3%81%97%E3%82%88%E3%81%86/%E3%82%AF%E3%82%A8%E3%83%AA.png",
    "width" : 1253
  },
  "mainEntityOfPage" : "https://knowledge.insight-lab.co.jp/snowflake/-snowflake-lead/lag-function-check-for-missing-teeth",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "snowflakeナレッジ"
  }
}
```