![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
(1)CATEGORYで、重複したレコードを除いてユニークにしたい
(2)重複の比較をする際に、大文字・小文字は区別をせずに比較したい
(3)また、前後にスペースが含まれているときはスペースを除いた状態で比較したい
(4)重複しているデータは、CREATE_DATEが新しいものを採用したい
(5)前後にスペースがある場合は、スペースを削除して出力する
SQLを考えてみましたが、(1)と(4)はOKだと思うのですが、それ以外の条件について
LOWERとTRIMを使う事になるかと思いますが、SQL文のどこに追加すれば意図した結果
となるのかが分からない状況です。
-------------------------------------------------------
SELECT A.ID, A.CATEGORY, A.CREATE_DATE
FROM PRODUCT_LIST A,
(SELECT CATEGORY, MAX(CREATE_DATE) as CREATE_DATE
FROM PRODUCT_LIST GROUP BY CATEGORY) B
WHERE A.CATEGORY = B.CATEGORY
AND A.CREATE_DATE = B.CREATE_DATE
-------------------------------------------------------
===============================
■ 元データ
ID CATEGORY CREATE_DATE
===============================
1 aaa 01/01
2 bbb 01/01
3 ccc 01/01
4 ddd 01/01
5 aaa 02/01
6 _bbb 02/01
7 CCC 02/01
===============================
===============================
■ 希望するデータ
ID CATEGORY CREATE_DATE
===============================
4 ddd 01/01
5 aaa 02/01
6 bbb 02/01
7 CCC 02/01
===============================
(※ スペースをアンダーバーで示しています)
よろしくお願いいたします。
(環境はOracle9iです)
No.1ベストアンサー
- 回答日時:
試してないけど、こんな感じでいいかと。
SELECT ID, CATEGORY, CREATE_DATE
FROM
(
SELECT x.*,row_number() over(partition by TRIM(LOWER(CATEGORY)) order by CREATE_DATE desc) R
FROM PRODUCT_LIST x
)
WHERE R=1
No.2
- 回答日時:
select max(id) as id
,max(trim(category)) keep (dense_rank Last order by create_date) as category
,max(create_date) as create_date
from PRODUCT_LIST
group by trim(lower(category))
order by 1
--- 結果 ---
IDCATEGORYCREATE_DATE
4ddd01/01
5aaa02/01
6bbb02/01
7CCC02/01
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- MySQL MYSQL エラー 2 2022/10/18 11:37
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【PL/SQL】FROM区に変数を使う方法
-
group byの並び順を変えるだけ...
-
SELECT FOR UPDATE で該当レコ...
-
単一グループのグループ関数で...
-
【SQL】違うフィールド同士の集...
-
「数字で始まらない」ものを抽...
-
phpmyadminでワイルドカードを...
-
where句中のtrim関数について
-
大量レコードをTRUNCATEせずに...
-
引数によってwhere句を切り替え...
-
SQLで条件にヒットしたレコード...
-
PL/SQLでフェッチでNULLの項目...
-
データ
-
AccessのSQL文で1件のみヒット...
-
ORCALE SQL 複数のGROUP BY
-
ACCESS レコードの並び順について
-
SQL*Loader Append
-
トランザクションログを出力せ...
-
アクセスのレポートでレコード...
-
SQLローダーCSV取込で、囲み文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
SQL*Loader Append
-
where句中のtrim関数について
-
AccessのSQL文で1件のみヒット...
-
group byの並び順を変えるだけ...
-
アクセスのレポートでレコード...
-
トランザクションログを出力せ...
-
データ
-
SELECT FOR UPDATE で該当レコ...
-
SQLで条件にヒットしたレコード...
-
「数字で始まらない」ものを抽...
-
引数によってwhere句を切り替え...
-
1レコード全てを改行なしで表...
-
BLOB型項目をSQLの検索条件に指...
-
updateで複数行更新したい
-
【SQL】違うフィールド同士の集...
-
osqleditについて
-
レコードの更新履歴について
-
あるカラムに同じ値を持つレコ...
おすすめ情報