
下記のようなテーブルがあるとします。
それぞれの人の最高得点であるレコードを抽出したいのですが可能でしょうか。
テーブル: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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10がインストールできま...
-
エクセルで縦のカラムデータを...
-
Ophcrackについて
-
postgresqlのtableのカラムの型...
-
php、postgresqlを使ってwebア...
-
三段論法を真理値表で証明する
-
sqlの中で、 例えば条件句で AN...
-
tesuto 01
-
python3.12のインストール方法
-
Pythonで2つのデータ(キー無し...
-
数値が定期的にあらわれる文字...
-
終端クォート ' が必要です と...
-
PostgressからMySQL(MariaDB)...
-
【PostgreSQL】行の値の並びを...
-
列が存在しないと言われる
-
PostgreSQL14.6のSSL対応について
-
ポストグレにあるExcelファイル...
-
PostgreSQL レコードからアイテ...
-
文字切り替えの時に 中央にでる A
-
postgreSQL カラムの全ての値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
PostgressからMySQL(MariaDB)...
-
ビット演算結果の取得
-
UNIQUEをつけたときのINDEXテー...
-
plpgsqlのエスケープ文字について
-
PostgresSQL8.4でツリー上に取...
-
SQL SELECT文 別テーブルのレコ...
-
クエリアナライザのsp_helpコマ...
-
pg_queryで変数の取り扱い方
-
テーブル作成 外部参照 配列
-
indexを使おうとしない間違った...
-
ベスト3の抽出方法
-
賢いSQL文がわからない
-
チェックボックスから、データ...
-
phpPgAdminからSQL文を発行し、...
-
SQLで検索結果の記事を表示したい
-
データを削除しても表領域の使...
-
Viewにインデックスは張れ...
-
ORA-00959: 表領域'****'は...
おすすめ情報