目次

SQLで複数行あるデータのみを抽出する

SQLでDBからデータを取得する際、重複を削除するのはDISTINCT句などで手軽に実現できるが、逆に複数行あるもののみ取得するのがそういったキーワードがなさそうなので、GROUP BYHAVINGを使用する。

テーブル「FOO」にあるカラム「HOGEHOGE」について、重複したもののみ取得したい場合

SELECT
    HOGEHOGE
FROM
    FOO
GROUP BY
    HOGEHOGE
HAVING
    COUNT(HOGEHOGE)>1

解説?

重複を見つけたい列に対してGROUP BYでグルーピングし、グルーピングした結果に対してHAVING「1つよりたくさん存在する」という条件を付加してます。
10件以上存在しているデータのみ、であれば、>1の部分を>10とかにすれば良い。