SQLで以下のようにテーブルにあるフィールドで同じ値があるレコードが複数ある場合に、そのレコード名と個数の取得の方法はあるでしょうか?

例えば以下の場合、ringo 3, apple 2のように。

id name value
1 a apple
2 b ringo
3 c ringo
4 d ringo
5 e apple

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/10/20 22:11:22
  • 終了:2011/10/27 22:15:03

回答(2件)

id:Melodybox No.1

Melodybox回答回数4ベストアンサー獲得回数02011/10/20 22:39:25

select value, count(*) from [テーブル名] group by value;

でどうでしょうか。

id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492011/10/21 03:03:49

単純にvalueの個数を集計したいという場合であれば、

回答No.1のSQL文になりますが、

「同じ値があるレコードが複数ある場合」なので、

「同じ値が複数存在しない場合はスルーする」という絞込みを追加しました

(複数行に分けてますが回答No.1のように1行に書いてもモチロンOK)

SELECT value, count(*)
FROM テーブル
GROUP BY value
HAVING count(*) > 1
;

大文字小文字の違いがありますが、これは見易さを考慮してのことで、

たいていのデータベースではどちらでも動きます

(それにしてもリニューアル後のスーパーpre記法の背景色は濃すぎて見づらい)

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません