SQL分の記述で質問なんですが、
データベース上に日付、時間、フラグと言う項目があります。
同一の日付、時間のものは数件ずつあります。
フラグは"b"と"1"があります。
このデータの日付・時間辺りの件数と+フラグが"1"の件数を同時に取得するSQL分はかけますでしょうか?
別々ならば、
SELECT DATE,TIME,COUNT(*) AS KENSU1
FROM W_TABLE
GROUP BY DATE,TIME
ORDER BY DATE,TIME
と
SELECT DATE,TIME,COUNT(*) AS KENSU2
FROM W_TABLE
WHERE FLG="1"
GROUP BY DATE,TIME
ORDER BY DATE,TIME
でかけると思うのですが、
1個のSQL分で記述は可能でしょうか?
処理結果を
05/02/23 12:00 10 5
05/02/24 10:00 12 3
(日付・時間・件数・フラグ="1"の件数
見たいに取得したいのですが..
No.3ベストアンサー
- 回答日時:
Oracleのバージョンにより異なりますが
Case When の記述かDecode関数を使用すれば可能だと思われます。
SELECT DATE, TIME, COUNT(*) AS KENSU1, SUM(CASE WHEN FLG = "1" THEN 1 ELSE 0 END) AS KENSU2
FROM W_TABLE
GROUP BY DATE,TIME
ORDER BY DATE,TIME
もしくは
SELECT DATE, TIME, COUNT(*) AS KENSU1, SUM(DECODE(FLG, "1", 1, 0)) AS KENSU2
FROM W_TABLE
GROUP BY DATE,TIME
ORDER BY DATE,TIME
のSQLでお望みの結果が得られませんでしょうか?
CASE WHEN FLG = "1" THEN 1 ELSE 0 END
または
DECODE(FLG, "1", 1, 0)
の記述は、FLG = "1"であった場合は 1 を、そうでなければ 0 を返します。
これをSUMで集計する事により、FLG="1"であるレコードの件数が得られる形になります。
SQLServerで動作確認はしましたが、Oracleでの確認は取れていませんので悪しからず。
No.2
- 回答日時:
以下のようなSQLでは如何でしょうか
SELECT DATE,TIME,SUM(KENSU1),SUM(KENSU2)
FROM
(SELECT DATE,TIME,COUNT(*) KENSU1,0 KENSU2
FROM W_TABLE
GROUP BY DATE,TIME
UNION ALL
SELECT DATE,TIME,0 KENSU1,COUNT(*) KENSU2
FROM W_TABLE
WHERE FLG = '1'
GROUP BY DATE,TIME)
GROUP BY DATE,TIME
No.1
- 回答日時:
WHERE FLG="1"の無いクエリ(全件件数クエリ)とWHERE FLG="1"のあるクエリ(条件件数クエリ)を2つ作成して下さい。
そうすると、
05/02/23 12:00 10
05/02/24 10:00 12
と言う結果が得られるクエリと、
05/02/23 12:00 5
05/02/24 10:00 3
と言う結果が得られるクエリになります。
それら2つのクエリを結合するクエリを作成して、DATEとTIMEで結合させます。
SELECT Q1.DATE,Q1.TIME,Q1.KENSU1,Q2.KENSU2
FROM Q1 INNER JOIN Q2 ON ((Q1.DATE = Q2.DATE) AND (Q1.TIME = Q2.TIME))
完全に1つのSQL文で書くのは難しいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今日の日付が入った行のデータ...
-
SQLで部分的にGROUP BYしたいとき
-
wordの差し込み印刷での日付表示
-
テーブルの主キーをdate型...
-
日付型なら変数の先頭になん...
-
日付書式に変換でこまっています!
-
OSのシステム日付を変更して...
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
エクセル 日付による並べ替え...
-
DB2のSQL(日付)について
-
日数算出SQL
-
構造体の配列変数の順番入れ替え
-
sysdateのフォーマットが変わり...
-
関数IFで、指定日付範囲のデー...
-
SQL MAX関数を検索条件にする。
-
SQLサーバで和暦から西暦に変換...
-
Excelについて
-
Excelの並べ替えがうまくいかない
-
oracle 文字列 01:45 を時間に...
-
日付表示について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
今日の日付が入った行のデータ...
-
Accessの数値から時間に変換す...
-
SQLで部分的にGROUP BYしたいとき
-
SQLサーバで和暦から西暦に変換...
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
エクセル 日付による並べ替え...
-
エクセルVBA 今日の日付行...
-
oracle 文字列 01:45 を時間に...
-
23時59分59秒までのデータを抽...
-
WHERE句にて「30日前から今日ま...
-
テーブルの主キーをdate型...
-
特定の日付が第何週目にあるか...
-
SQLite3のtext→date変換について
-
SQLで今日の日付でWhereしたい
-
ExcelのSUMPRODUCTで日付の範囲...
-
日付の切り出し方法について
-
指定した年月までのデータを取...
-
4バイトの日付データを、16進数...
-
日付型なら変数の先頭になん...
-
wordの差し込み印刷での日付表示
おすすめ情報