2013年10月1日火曜日

[MySQL]カラムの値が重複しているレコードを抽出するSELECT文



mysqlを使ったデータベースで
同様の内容、値が重複しているレコードを抽出した場合
どういったSELECT文を書けばいいのでしょうか?
たくさん参考になることを記載しているページはすぐ見つかりますが
集計関数の結果を条件とした絞込みという
select文にあまりなれていなかったので
ハマった部分の開設を兼ねて整理しました。

テーブルAに
同様のタイトルが入っているレコードを抽出したい場合。

セレクト文

SELECT タイトル
FROM テーブルA
GROUP BY タイトル HAVING COUNT(タイトル) > 1

解説

このSELECT文は「集計関数の結果を条件とした絞込み」
を得る方法で


集計関数とは

集計関数は表から取り出したデータを集計する機能を持っています。
集計関数には次のような関数が用意されています。

COUNT行数
AVG平均
SUM合計
MAX最大値
MIN最小値



集計関数の使い方

例として合計を求めるSUMを使ったSELECT文。

1.特定の顧客(顧客ID:152)が支払った合計の金額を求めています。

SELECT SUM(TotalDue) 支払合計額 FROM 注文
WHERE CustomerID = 152

2.売上が1000以上の商品IDを抽出セレクト文

SELECT 商品ID, SUM(値段)
FROM 商品マスタ
GROUP BY 商品ID HAVING SUM(値段)>1000

0 件のコメント:

コメントを投稿

関連時事

人気の投稿