- PR -

質問:count(*)の結果とテーブルの結合

1
投稿者投稿内容
ひらく
会議室デビュー日: 2006/06/29
投稿数: 8
投稿日時: 2006-07-05 13:55
こんにちは。実は
+-----+
|title|
+-----+
|hoge1|
|hoge1|
|hoge2|
|hoge3|
+-----+
と言うテーブルがあった時に、count()を使って

+-----+------+
|title| count|
+-----+------+
|hoge1| 2
|hoge1| 2
|hoge2| 1
|hoge3| 1
+-----+------+
という風にしたいのですが、なかなかうまくいきません。
知恵を貸してください。お願いします。
環境はMySQLの最新版です。 もしoracleじゃないと無理でしたら
oracleの文でも結構ですので、お願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-07-05 14:03
コード:
select
	title,
	(select
		count(*)
	from
		table as t1
	where
		t1.title = t2.title)
from
	table as t2


でいけるはず
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-07-05 14:05
group by title で検索すれば良さそうですが、
例の "hoge1" の検索結果って 2 行表示する必要が
あるんでしょうか?

+-----+------+
|title| count|
+-----+------+
|hoge1| 2 |
|hoge2| 1 |
|hoge3| 1 |
+-----+------+

っていうように title 列の値が 1 件ずつでよければ
select title, count(title) from table_name group by title
でいいんですが。

_________________
もしもし@RMAN 友の会
ひらく
会議室デビュー日: 2006/06/29
投稿数: 8
投稿日時: 2006-07-06 00:05
かつのりさん、もしもしさん、返答ありがとうございます。

かつのりさんのコードでバッチリいけました。
会社でOracleでやった時にエラーを吐いたので、あれ?っと思ったのですが、
家のMySQLでやってみたらサクっといけました。ありがとうございます。
やはりMySQLとOracleは違いますね^^;

もしもしさんの言うとうり、2行表示する必要は普通は多分ないと思います^^;
ただ私の設計もないJAVAプログラムに必要になっただけですw

ちなみに必要になった所は、HTMLのテーブルで

+-----+------+
| |title1|
|name |title2|
| |title3|
+-----+------+

という感じに作りたかったので、
<table border="1">
<tr>
<td rowspan="3">name</td><td>title1</td>
</tr>
<tr>
<td>title2</td>
</tr>
<tr>
<td>title3</td>
</tr>
</table>

そこで、単純にrowspan="3"の3が欲しいなぁと思い、小5時間試したのですできず、
こちらで聞かせていただきました。 今思えば、小5時間Java文を工夫すれば良かったです。

これから仕事で100行近くのSQL文を書かされるので、また質問すると思いますが、
よろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)