
ID SUB_ID STATUS 他のカラム省略
2 | 1 | 99
2 | 2 | 99
2 | 3 | 00
2 | 4 | 00
3 | 1 | 99
3 | 2 | 99
3 | 3 | 99
3 | 1 | 88
3 | 2 | 00
3 | 3 | 00
3 | 4 | 00
3 | 5 | 00
4 | 1 | 88
4 | 2 | 88
5 | 1 | 99
主キー:ID, SUB_ID, STATUS
抽出したいのは、同じIDのSTATUSが全て99か、または、全て88
の場合です。
上記の例の場合は、IDが3と4と5が抽出対象です。
データの量は多くて1万ですので、恐らくFULL SCANで
アプリに読み込んでから抽出する場合、テーブルから最初に
読み取るときに時間がかかり過ぎると思ってしまいました。
以上、宜しくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
select * from t where id in (select id from t group by id having
min(status) = max(status) and max(status) in (88, 99));お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLでSUMなどの関数でデータが...
-
SQL、2つのテーブルで条件一致...
-
SQL*LoaderでCSVから指定した列...
-
テーブル名をカラムとして取得...
-
SQL 複数テーブルのupdate
-
sqlplusで表示が変なので、出力...
-
update文で改行を入れる
-
カラム位置変更
-
SQL(oracle)でご助言いただきた...
-
特定のカラムが更新されたとき...
-
sqlで質問です。 aテーブルとb...
-
ROWNUMでUPDATEをしたいのです...
-
件数とデータを同時に取得する...
-
SQLで違うテーブルの値を比較し...
-
ORACLE SQL 複数項目の最大抽出
-
INDEX RANGE SCAN とは?
-
Oracle(オラクル)で、日付時刻...
-
descでdefault値やキーなどを表...
-
オラクルの条件で時間を指定す...
-
数値をNUMBER型にするかCHAR型...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
update文で改行を入れる
-
SQL*LoaderでCSVから指定した列...
-
SQL、2つのテーブルで条件一致...
-
SQLでSUMなどの関数でデータが...
-
SQL 複数テーブルのupdate
-
テーブル名をカラムとして取得...
-
sqlplusで表示が変なので、出力...
-
ROWNUMでUPDATEをしたいのです...
-
SQL(oracle)でご助言いただきた...
-
カラム位置変更
-
件数とデータを同時に取得する...
-
OracleのSQLで同テーブルのカラ...
-
LONG型の先頭250バイトを Varch...
-
数値をNUMBER型にするかCHAR型...
-
特定のカラムが更新されたとき...
-
半角英数文字の抽出がしたい。
-
DBからタブ区切りのCSVデータを...
-
sqlで質問です。 aテーブルとb...
-
SQLについて教えて下さい。 主...
-
Oracleのview、synonymをCOMPIL...
おすすめ情報
もう一つ、抽出条件になるカラムがありました。
FLAGカラムです。
FLAGカラムが一つでも、ON(1)だと抽出対象です。
例
ID SUB_ID STATUS FLAG 他のカラム省略
2 | 1 | 99 | 0
2 | 2 | 99 | 0
2 | 3 | 00 | 0
2 | 4 | 00 | 0
3 | 1 | 99 | 0
3 | 2 | 99 | 0
3 | 3 | 99 | 0
4 | 1 | 88 | 1
4 | 2 | 00 | 0
5 | 1 | 88 | 0
5 | 2 | 88 | 0
6 | 1 | 99 | 0
全て99と全て88である、ID3と5と6の他に
FLAGが1のID4も抽出対象となります。
FLAGカラムは1でさえあれば、抽出対象となります。