dポイントプレゼントキャンペーン実施中!

SQLを使用し、テーブル情報を取得したいです。
以下の条件の際の取得方法がわかりません。

※名前が重複する際は最新日付のものを取得

名前/日付/分類
A 20190801 あいうえお
B 20190802 かきくけこ
C 20190803 あいうえお
A 20190802 さしすせそ
B 20190804 さしすせそ

取得したい結果
A 20190801 あいうえお
B 20190802 かきくけこ
C 20190803 あいうえお

よろしくお願いします。

A 回答 (2件)

ひとつだけ、名前だけの重複削除は同姓同名が一人もいない前提でないと使えません。

    • good
    • 0

> ※名前が重複する際は最新日付のものを取得



最新ではなく最も古い日付になっていますよね?

・元データ
create table tbl(name varchar(10),d date,category varchar(30));
insert into tbl values
('A','2019-08-01','あいうえお'),
('B','2019-08-02','かきくけこ'),
('C','2019-08-03','あいうえお'),
('A','2019-08-02','さしすせそ'),
('B','2019-08-04','さしすせそ');

・古い日付をとる
select * from tbl as t1
where not exists (select 1 from tbl where name=t1.name and d<t1.d);

・最新をとる
select * from tbl as t1
where not exists (select 1 from tbl where name=t1.name and d>t1.d);
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A