
お世話になります。
SQL文で、下記内容のデータを取得する方法がわかりません。
・TESTテーブルからA、B、Cの3項目のデータを取得する。
・但し、この中のC項目については、WHERE句の条件を満たす
データの最大値を取得する。
・項目AおよびBの取得条件は、項目Cと同一条件とする。
・目的は、項目AおよびBに関しては、WHERE句の条件を満たす
全てのレコードを取得し、項目Cにおいては最大値のみ取得したい。
上記内容を取得しようと考えた場合、
現時点で下記のSQL文を作成して実行しましたが、
うまくデータが取得できません。
SELECT
A, B, C
FROM
TEST
WHERE
C = (SELECT MAX(C) FROM TEST)
AND Z = 'xxxxx'
AND Y = 'x'
AND X = 'Y'
※項目X, Y, ZはTESTテーブルのカラムです
※上記SQLを、A、Bのみ取得用とCのみ取得用に
それぞれ分解して実行すると、それぞれの結果は
正常に取得できます。
2つの結果を1つのSQLで取得することは可能でしょうか?
どなたかご教授願えますか?よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
いまいち条件がきちんと理解できていないのですが。
A・Bは全レコード、Cは最大値ということは、取得した全レコードはCの値は同一になるということでいいですか?
それなら、
SELECT
A, B, MAX(C) OVER() C
FROM
TEST
WHERE
Z = 'xxxxx'
AND Y = 'x'
AND X = 'Y';
でいいと思います。
No.1
- 回答日時:
SELECT
*
FROM
( SELECT
A,B,C
FROM
TEST
WHERE
Z = 'xxxxx'
AND Y = 'x'
AND X = 'Y'
ORDER BY
C DESC
)
WHERE
ROWNUM = 1
Oracleは使ったことがないのですが、
Cでソートをした物のなかからROWNUMが1の物を取得すれば良いかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
単一グループのグループ関数で...
-
SQLで条件にヒットしたレコード...
-
SQL*Loader Append
-
アクセスのレポートでレコード...
-
oracle DB内のデータを増幅す...
-
【PL/SQL】FROM区に変数を使う方法
-
group byの並び順を変えるだけ...
-
データ
-
AccessのSQL文で1件のみヒット...
-
1レコード全てを改行なしで表...
-
SELECT文の結果を変数に・・・
-
where句中のtrim関数について
-
引数によってwhere句を切り替え...
-
440 OIP エラーについて(ORADC)
-
トランザクションログを出力せ...
-
SELECT FOR UPDATE で該当レコ...
-
ワイルドカード検索として合致...
-
SQLローダーCSV取込で、囲み文...
-
Oracleで「文字が無効です」の...
-
ファイルの漢数字の順番につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
単一グループのグループ関数で...
-
データ
-
SQL*Loader Append
-
MERGE文について
-
where句中のtrim関数について
-
【PL/SQL】FROM区に変数を使う方法
-
group byの並び順を変えるだけ...
-
AccessのSQL文で1件のみヒット...
-
updateで複数行更新したい
-
SELECT FOR UPDATE で該当レコ...
-
引数によってwhere句を切り替え...
-
トランザクションログを出力せ...
-
アクセスのレポートでレコード...
-
SQL MARGE 使用方法 ORACLE
-
osqleditについて
-
SQLで条件にヒットしたレコード...
-
1レコード全てを改行なしで表...
-
BLOB型項目をSQLの検索条件に指...
-
「数字で始まらない」ものを抽...
-
oracle DB内のデータを増幅す...
おすすめ情報