
はまっています。お知恵を貸してください。
Oracle8i WindowsNT4.0です。
tbl_testというテーブルがあります。
データが以下のように入っています。
col1 col2 col3
---------------------------------
A B C
A
B A A
C
この時、col1 col2 col3それぞれのカラムの中で、
Aという値が何個あるか数えたいのです。
今は以下のように三つにわけてセレクトしていますが、
これをひとつの式にまとめたいのですが、可能でしょうか?
UNIONしても欲しい答えは返ってきません。
===========================
SELECT COUNT(col1) AS col1
FROM tbl_test
WHERE col1 = 'A'
===========================
SELECT COUNT(col2) AS col2
FROM tbl_test
WHERE col2 = 'A'
===========================
SELECT COUNT(col3) AS col3
FROM tbl_test
WHERE col3 = 'A'
欲しい答えは、
col1 col2 col3
-----------------------
1 2 1
です。
なお、家に検証環境が無いので、検証&お礼は明日のお昼くらいになると思います。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
間違えました。
合計値をほしいわけじゃないんですね(^^;;こちらです。
select t1.col, t2,col, t3.col from
( SELECT count(col1) col
FROM tbl_test
WHERE col1 = 'A' ) t1,
( SELECT count(col2) col
FROM tbl_test
WHERE col2 = 'A' ) t2,
( SELECT count(col3) col
FROM tbl_test
WHERE col3 = 'A' ) t3
No.4
- 回答日時:
SELECT
SUM(DECODE(col1,'A',1,0)) AS col1,
SUM(DECODE(col2,'A',1,0)) AS col2,
SUM(DECODE(col3,'A',1,0)) AS col3
FROM tbl_test
でどうでしょうか?
テストしていませんが、こんな感じで出来たと思います。
ありがとうございます。
検証したのですが、少し違う値が返ってくるようです。
意味がわかっていないので、時間のあるときに調べてもう一度やってみようと思います。
知らない使い方なので勉強になりました。
No.3
- 回答日時:
(オラクルは使ったことがないので、固有の部分は適宜修正してください。
)select sum(sum_col1) as col1
,sum(sum_col2) as col2
,sum(sum_col3) as col3
from (select count(*) as sum_col1
,0 as sum_col2
,0 as sum_col3
from tbl_test where col1='A'
union all
select 0 as sum_col1
,count(*) as sum_col2
,0 as sum_col3
from tbl_test where col2='A'
union all
select 0 as sum_col1
,0 as sum_col2
,count(*) as sum_col3
from tbl_test where col3='A'
);
もっとすっきりしたSQLがあると思いますが、取り急ぎ回答します。
No.1
- 回答日時:
union allにしてます?
select count(*) from
(
SELECT col1 col
FROM tbl_test
WHERE col1 = 'A'
union all
SELECT col2 col
FROM tbl_test
WHERE col2 = 'A'
union all
SELECT col3 col
FROM tbl_test
WHERE col3 = 'A'
);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL 外部結合についての質問
-
LEFT JOINの条件式で=’’を使用...
-
エラー2「無効な識別子です」
-
自己相関サブクエリと自己結合...
-
関係演算子が無効です。
-
ADO VBA 実行時エラー3021
-
Oracleでの文字列連結サイズの上限
-
OracleのSQL*PLUSで、デー...
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
ACCESSの集計クエリで3件ある...
-
使うべきでない文字。
-
Accessで別テーブルの値をフォ...
-
postgresql DELETE後commit...
-
Excelでセルの書式設定を使用し...
-
割合(パーセント)を求めるに...
-
沿線コード
-
MERGE文を単体テーブルに対して...
-
抽出したデータを修正して元の...
-
固定値を含む結合と複数テーブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL 外部結合についての質問
-
関係演算子が無効です。
-
エラー2「無効な識別子です」
-
エラー「無効な識別子です」
-
自己相関サブクエリと自己結合...
-
LEFT JOINの条件式で=’’を使用...
-
SQLで後方の文字列を置換する方法
-
TO_CHAR関数における外部結合に...
-
【修正希望】【マクロ】元デー...
-
パフォーマンスを考慮したSQL文...
-
range表記をcells表記にしたい
-
Excel VBAで、Averageの範囲を...
-
エクセルVBAでSUM関数の位置を...
-
SQL 文字列検索につきまして
-
同じテーブルをLEFT JOIN
-
Oracle SQL 結合の手法について
-
INNER JOINとwhere句
-
9iのSQL:1999構文を使用した外...
-
内部結合する時の結合条件と制...
-
2つのSQL(Access)の結果[時刻,...
おすすめ情報