COUNTの取得方法(?)について質問があります。
現在次のSQL文を投げると
SELECT
ITEM
,COUNT(ITEM)
FROM
ITEM_MASTER
WHERE
ITEM IN ('000', '100', '200', '300', '400')
GROUP BY
ITEM
ORDER BY
ITEM
;
このような結果が返ってきます。
ITEM COUNT(ITEM)
------ -----------
100 9
200 2
300 1
ITEMの値が000と400の件数は0件なのですが、0件の場合には、
次のように0と表示したい場合はどのようにしたら良いのでしょうか?
ITEM COUNT(ITEM)
------ -----------
000 0 <--ここ
100 9
200 2
300 1
400 0 <--ここ
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
対象データが存在しないモノは抽出のしようがありません。
どこにも存在しないのであれば、便宜上作るしかありません。
selec ITEM,COUNT(*)
from
ITEM_MASTER,
(
select '000' as KEY from dual union all
select '100' as KEY from dual union all
select '200' as KEY from dual union all
select '300' as KEY from dual union all
select '400' as KEY from dual
) M
where ITEM=M.KEY
group by ITEM
order by ITEM
;
抽出条件も兼ねたインラインビューとしています。
ありがとうございました。解決しました。
回答頂いたままだと結果は変わりませんでしたが、
次のように修正した所、思い通りの結果が得られ
ました。
SELECT
M.ITEM
,COUNT(I.ITEM)
FROM
(
SELECT '0000' AS ITEM FROM DUAL UNION ALL
SELECT '1000' AS ITEM FROM DUAL UNION ALL
SELECT '2000' AS ITEM FROM DUAL UNION ALL
SELECT '3000' AS ITEM FROM DUAL UNION ALL
SELECT '5000' AS ITEM FROM DUAL
) M
LEFT JOIN ITEM_MASTER I ON M.ITEM = I.ITEM
GROUP BY
M.ITEM
ORDER BY
M.ITEM
No.1
- 回答日時:
ITEM_MASTER<--このテーブルはマスタになるのでしょうか?
もし、トランザクションであれば、マスタテーブルと結合してデータ取得が可能だと思います。
[ITEM_MASTER]
ITEM data
100 aa
100 bb
200 cc
[MASTER]
ITEM NAME
000 ITEM0
100 ITEM1
200 ITEM2
300 ITEM3
のテーブルが存在しているのであれば、
SELECT
A.ITEM
,COUNT(B.ITEM)
FROM
MASTER A left join ITEM_MASTER B
on (A.ITEM = B.ITEM)
WHERE
A.ITEM IN ('000', '100', '200', '300', '400')
GROUP BY
A.ITEM
ORDER BY
A.ITEM
こんな感じだったらいけると思いますが、、どうでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP 10文字以降は非表示にしたいんですが、文法が分かりませんアドバイスお願い致します 1 2022/07/10 20:37
- オープンソース cssで中央寄せ 1 2023/05/19 06:25
- その他(IT・Webサービス) html cssについて 3 2023/05/13 12:48
- PHP PHP MySql ページング 2 2022/09/20 06:38
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- UNIX・Linux mxlinux 起動時エラーについて 1 2023/01/28 23:05
- ノートパソコン パソコンで悩んでいます。 今三年生で建築を学んでいるものです。 使っていたパソコンが壊れてしまったた 4 2023/04/22 03:47
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
「ORA-00907: 右カッコがありません」について
Oracle
-
単一グループのグループ関数ではありません。
Oracle
-
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
-
4
DBエラー 右カッコがありません
Oracle
-
5
count関数の値をwhere句で使用する方法について
MySQL
-
6
異なるスキーマからデータを抽出するには?oracl、PL/SQL
Oracle
-
7
複数カラムを跨いだCOUNTができない
PostgreSQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
select句副問い合わせ 値の個...
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
SET句内で複数の条件を指定して...
-
oracleの分割delete
-
V$SGAとV$PARAMETERの確認
-
select文でフリーズします。
-
データベースの基礎かもしれま...
-
unionでマージした副問合せを結合
-
2つのテーブル結合
-
SQL 年だけ抽出
-
外部結合とor条件混在の記述方法
-
SELECTの結果で同一行を複数回...
-
unionの結果は集計はできないで...
-
Accessで別テーブルの値をフォ...
-
エクスプローラーで「2つの条件...
-
ファイル書込みで一行もしくは...
-
<SQL>条件付きで最小値レコード...
-
SQLServer 日付が直前のレコー...
-
SQL>UPDATEと同時にその件数を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
固定値を含む結合と複数テーブ...
-
複数テーブルのMAX値の行データ...
-
他のテーブルを参照した値はupd...
-
unionの結果は集計はできないで...
-
外部結合とor条件混在の記述方法
-
oracleの分割delete
-
SET句内で複数の条件を指定して...
-
SQL GROUPで件数の一番多いレコ...
-
DELETE 文とEXISTSの使い方につ...
-
COUNTの取得方法(?)について...
-
集計後の数値が倍になる
-
SQLの書き方(チェックボックス)
-
unionでマージした副問合せを結合
-
結合と副問い合わせの違い
-
副問い合わせのinsert文
おすすめ情報