膨大なデータの突き合わせをする際、エクセル関数やVBAなどのプログラムでは演算がいつまでも終わらなくなってしまうことがあります。
膨大なデータ量でレスポンスに限界を感じたとき、またはプログラムをできるだけ短くしたいときにSQLが有効です。
エクセルで突き合わせをする方法はこちらを参考にしてください。
データベースの勉強を始めるにあたっては、ミック氏の下記の書籍がおすすめです。
リンク
SQLで突き合わせるデータ
下記のデータを突き合わせて、Book1にしかないデータを探してみます。
Book1
col1という列に1~10が並んでいます。

Book2
Book1のcol1の値の一つを変更し、並び順を変更しました。
従って、探すべき「Book1にあってBook2にない値」は9になります。

SQLで付き合わせる
下記の4行のコードで実現できます。
もちろんデータ数が10行だけでなく、10万行になっても100万行になってもこれで比較できます。
SELECT A.col1
FROM [dbo].[Book1] AS A
LEFT JOIN [dbo].[Book2] AS B ON A.col1 = B.col1
WHERE B.col1 is null
SQLで突き合わせた結果
Book1にあってBook2にない値が9だと確認できました。

この例は10行ほどなので目視でもあっという間に見つけられますが、仮に100万行のデータでこの差分を見つけるのはなかなか大変です。
まとめ
単純な突き合わせで、コードも4行ほどでした。
しかし侮ることができないのは、これをVBAのような『手続型言語』で実現するには4行という訳にはいきません。
SQLはエクセルのような便利な入出力を持っていない代わり、こと処理に関しては魔法のような短いコードで処理を実現できます。しかもレスポンスは高速です。
データベースの勉強を始めるにあたっては、ミック氏の下記の書籍がおすすめです。
リンク
コメント