MySQLを利用しています。(初心者です。)


以下のデータですが、(CSV形式)
No,DATA1,DATA2
1,AAA,111
2,AAA,111
3,AAA,222
4,AAA,222
5,AAA,333
6,BBB,111
7,BBB,222
8,BBB,333
9,CCC,111
10,CCC,222

このようなデータがあるとして、まず、DATA1のAAAを抽出。さらにその中から、何種類のDATA2が入っているかを抽出します。
この場合は3種類(111,222,333)です。

これを実行したい場合はどうすればいいでしょうか?

また、AAAの中には3種類が含まれていますが、「3」という数字を拾いたい場合はどうすればいいでしょうか?

つまり、抽出したなかからさらに抽出と、2段階で抽出したい場合はどうすればいいでしょうか?

どなたか教えて下さい。

使用言語はPerlを利用しています。

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:2007/06/27 21:21:19
  • 終了:2007/07/04 21:25:03

回答(2件)

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912007/06/28 00:00:44

ポイント60pt

クエリ文のみになりますが、

SELECT DISTINCT DATA2 FROM my_table WHERE DATA1='AAA';

とDISTINCT 句を使用すれば、DATA1 が AAA の DATA2が重複なく表示されます。

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_12.htm


これをテンポラリーテーブルとしてカウントを使用すれば、3が得られます。

SELECT COUNT(*) FROM (SELECT DISTINCT DATA2 FROM my_table WHERE DATA1='AAA' ) AS tmp;

http://dev.mysql.com/doc/refman/4.1/ja/unnamed-views.html

id:zachouR

うまく行きました!

ありがとうございます。これを利用すれば、すごく幅が広がりそうです!

2007/06/28 20:38:14

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 Sampo 556 271 104 2007-06-28 22:11:15

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

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

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

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

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