初心者でいまいちSQLが記述できませんでした。
どなたか教えてください。
以下のようなファイルから最新日付のデータを
取得したいのですが、どのようにSQLを記述したら
よいかわかりません。
個人番号|日付|名前|生年月日
00000001,2001/1/1,テスト太郎/1960/1/1
00000001,2003/1/1,テスト太郎/1960/1/1
00000001,2004/1/1,テスト太郎/1960/1/1
00000002,2002/1/1,テスト花子/1945/1/1
00000002,2003/1/1,テスト花子/1945/1/1
00000002,2005/1/1,ですと花子/1945/1/1
00000003,2001/1/1,テスト次郎/1980/1/1
00000003,2003/1/1,テスト次郎/1980/1/1
00000003,2005/1/1,テスト次郎/1980/1/1
↓抽出後
00000001,2004/1/1,テスト太郎/1960/1/1
00000002,2005/1/1,ですと花子/1945/1/1
00000003,2005/1/1,テスト次郎/1980/1/1
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
8i workgroup だと、分析関数が使えません。
9i以降は、standard(旧workgroup)でも使えますが。以下、代替え法です。・個人番号毎に日付が単一(同一日なし)なのであれば、
select 個人番号,日付,名前,生年月日
from TARGET
where
(個人番号,日付) in (select 個人番号,max(日付) from TARGET group by 個人番号)
;
回答ありがとうございます!
データは個人番号と日付がキー項目なので、
同一日はありません。
ご回答いただいた方法で無事できました。
本当にありがとうございました。
No.1
- 回答日時:
オラクルのバージョンによって、最適なSQLが変わってくるので、
バージョンとエディションは書いておく方が良いと思いますよ。
分析関数による解決法
select 個人番号,日付,名前,生年月日
from
(
select
TARGET.*,
row_number() over(partition by 個人番号 order by 日付 desc) R
from TARGET
)
where R=1
分析関数を使わない方法もありますが、面倒なので割愛。
この回答への補足
回答ありがとうございます。
初めて質問させていただきましたので、
バージョン等の記述が抜けてしまいました。
失礼いたしました。
バージョンはoracle8iです。
すみません、初心者でエディションとはどこで
確認したらよいのか良く分かりません。
Oracle8iWorkgroupServer
R8.1.7 for WindowsNT/2000
と書いてありました。
早速試してみたのですが、
ORA-00439: 機能は使用できません:
OLAP Window Functions
とエラーとなってしまいました。
バージョンの問題でしょうか?
本当にOracle初心者でよくわからず、すみません。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/02 11:48
- その他(教育・科学・学問) 数学や物理の太郎さんと花子さんは浪人生ですか? 毎年あれだけ数学の知識があって進研模試や共通テストで 1 2023/06/02 23:18
- Excel(エクセル) 処理年月が連続(指定年月~何ケ月間)している人のみ抽出をExcelのみで可能でしょうか 6 2022/10/31 14:57
- Excel(エクセル) 【関数】【マクロ】データの転記の方法について 2 2023/07/26 15:22
- 予備校・塾・家庭教師 数学では太郎さんと花子さんの意味不明な雑談を聞かされ 国語ではAさんBさんの物語の感想を聞き、 社会 2 2023/06/02 23:21
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- 哲学 《太郎ハ花子ガ好きだ》構文から《象は鼻が長い / 僕はウナギだ / コンニャクは太らない》へ 1 2022/05/30 08:48
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
- 友達・仲間 嫌われてる。その子は19歳。花子と呼びます。僕は太郎と呼びます。僕は20代後半男です。嫌われる様な事 5 2022/07/17 03:07
- 浮気・不倫(恋愛相談) 10年付き合った太郎と別れるべきか、それとも次郎と付き合うべきか 4 2022/06/18 02:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
重複するIDのデータを1行にま...
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
SQLサーバで和暦から西暦に変換...
-
SQLite3のtext→date変換について
-
SQLで部分的にGROUP BYしたいとき
-
Oracle10gのsql分についての質...
-
エクセル 日付による並べ替え...
-
日付表示について
-
Excelの並び替え(先頭の文字以...
-
最新日付のデータを取得したい
-
OracleのDATE型について
-
SQL/Loaderでの年月日時分秒の...
-
Accessのマクロでモジュールを...
-
エクセルVBAでUserFormを起動し...
-
Access VBAで行ラベルが定義さ...
-
ODBCリンクの際にACCESSでは読...
-
Texの枠囲み調節
-
SQL*Loaderでのsysdate使用
-
WHERE句の実行順序
-
ファイルメーカーでの文字列の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
今日の日付が入った行のデータ...
-
SQLサーバで和暦から西暦に変換...
-
SQLで部分的にGROUP BYしたいとき
-
重複するIDのデータを1行にま...
-
Accessの数値から時間に変換す...
-
エクセル 日付による並べ替え...
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
テーブルの主キーをdate型...
-
日付型なら変数の先頭になん...
-
日付書式に変換でこまっています!
-
エクセルのヘッダーを変数で指...
-
yyyy/M/dをyyyy/MM/ddに変換
-
Excelグラフの日付軸の日付がず...
-
oracle 文字列 01:45 を時間に...
-
ExcelのSUMPRODUCTで日付の範囲...
-
wordの差し込み印刷での日付表示
-
DB2のSQL(日付)について
-
WHERE句にて「30日前から今日ま...
-
23時59分59秒までのデータを抽...
-
SQL/Loaderでの年月日時分秒の...
おすすめ情報