下記のようなテーブルがあるとします。
それぞれの人の最高得点であるレコードを抽出したいのですが可能でしょうか。
テーブル:result
no id point date
--------------------
1 A 60 ...
2 A 70
3 B 50
4 B 90
期待出力
no id point date
-------------------
2 A 70 ...
4 B 90
自分でも色々考えたつもりですが、例えば
select max(point) from result group by id;
とすると
70,90
という値は抽出されますが、該当レコードの全カラムを出力させたいです。
もし同じidで同じpointのレコードがあった場合は、dateの新しいほうを優先したいです。
id,point,dateがまったく同じレコードは存在しないと仮定します。
この他にもdistinct等も考えましたが、指定したカラムが重複した場合どのレコードが選択されるかは
不定のようですので使えそうにありません。
そもそもSQLだけでこのような出力が可能かどうかもわかりません…。
テーブルの設計が悪いというのもあるのでしょうか。
どなたかご助言くだされば幸いです。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#1です。
#2さんの回答を見て思い出しましたが、PostgreSQLは、サブクエリ内でlimit句を使えましたね。
もしRDBMSがPostgreSQLでなく、MySQLであったりしたら、サブクエリ内でlimit句を使えなかったと記憶していますので、念のため。
No.2
- 回答日時:
これなんてどうでしょう。
select a.* from tbl as a
where a.no =
( select b.no from tbl as b
where a.id=b.id
order by point desc, "date" desc limit 1 );
No.1
- 回答日時:
RDBMSは、ここのカテゴリ通りPostgreSQLなのでしょうか?
<SQL例>
select x.*
from result as x,
(select id,max("point") as max_point
from result
group by id) as y,
(select id,"point",max("date") as max_date
from result
group by id,"point") as z
where x.id=y.id and y.id=z.id
and x."point"=max_point and max_point=z."point"
and x."date"=max_date
order by x.no
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- Oracle SQL update方法 2 2022/06/22 14:07
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルからのselectにおいて...
-
postgreSQLのint型は桁数指定が...
-
PostgressからMySQL(MariaDB)...
-
pl/pgsqlで変数の扱い
-
SQL文作成のお願い
-
postgreSQLの正規表現
-
全テーブルのデータの行数
-
SQL SELECT文 別テーブルのレコ...
-
チェックボックスから、データ...
-
データを削除しても表領域の使...
-
異なるスキーマからデータを抽...
-
特定のスキーマのテーブルを一...
-
Viewにインデックスは張れ...
-
DELETE文でFROM句を省略した場合
-
Access レコードを追加できませ...
-
CLOB型へのINSERT
-
ACCESS 複数テーブル・複数フィ...
-
csvをSQLiteに取り込むと文字化...
-
count(1)とcount(*)の違い
-
select insert 句
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
PostgressからMySQL(MariaDB)...
-
UNIQUEをつけたときのINDEXテー...
-
クエリアナライザのsp_helpコマ...
-
SQL SELECT文 別テーブルのレコ...
-
SQL文作成のお願い
-
3つのテーブルの処理について
-
全テーブルのデータの行数
-
SQLで検索結果の記事を表示したい
-
近い時間によるテーブル結合
-
PostgresSQL8.4でツリー上に取...
-
SELECT結果から重複行を除く方法
-
Perl DBI でSELECT ilikeの結果...
-
2つの異なるテーブルを和結合し...
-
賢いSQL文がわからない
-
チェックボックスから、データ...
-
Viewにインデックスは張れ...
-
データを削除しても表領域の使...
-
異なるスキーマからデータを抽...
おすすめ情報