【SQL】重複レコードを抽出&特定カラムの値が全て同じものを抽出

2022/05/15に公開

【要件】

重複レコードを抽出&特定カラムの値が全て同じものを抽出したい

手順

  • グループ化後、2件以上存在するか判定
  • グループ化後、特定カラムの値が同じか判定

実装案

  • グループ化後、2件以上存在するか判定
  • グループ化後、特定カラムの値が同じか判定

上記の条件を満たせればOK。(テーブル名とカラム名は適当に食材の種類、値段)

SELECT
    ingredient.*,
FROM
    `ingredient`
GROUP BY
    `ingredient`.`type`, # group化
HAVING(
    COUNT(type) >= 2 # グループ化後、2件以上存在する
    AND count(distinct(price)) = 1 # グループ化後、全て同じ値である = 種類が一つだけ
)

参考

Discussion