SQLでデータの不一致を探す
次のようなテーブル「height」があったとします。名前と身長のデータです。
Suzukiが二つ入力されています。データが同じならば問題はないかもしれませんが、身長が異なります。
SQLを使って、このようなデータの不一致を探す方法を紹介します。Access2007で確認しました。
id | namae | takasa |
---|---|---|
1 | Suzuki | 180 |
2 | Tanaka | 175 |
3 | Takahashi | 170 |
4 | Suzuki | 185 |
最大値と最小値の差を使う
サブクエリを使います。
二つ以上レコードがあって異なる身長が入力されているということは最大値と最小値に差があるということです。
まずnamae毎のtakasaの最大値と最小値を求めます。
この結果を利用し、最大値と最小値の差がゼロより大きいレコードを抽出します。
上のSQLをFROM句に使います。セミコロンは削除します。
分散を使う
異なる身長が入力されているということは分散がゼロより大きいということです。
分散は、平均との差の二乗の平均なので、異なる値があれば必ずゼロより大きい値になります。
[ 2014年9月6日 | カテゴリー: Access | タグ: SQL ]
« JavaScriptで節分の日を調べる関数 | ブログ「最後は運です。」を移行 »
コメントを残す