[解決済み】MySQLのROW_NUMBER()
2022-03-29 08:09:57
質問
MySQL で SQL Server の関数を複製する良い方法はありますか?
ROW_NUMBER()
?
例えば
SELECT
col1, col2,
ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS intRow
FROM Table1
そして、例えば、制限する条件を追加することができます。
intRow
を1に設定すると、最も大きい
col3
各
(col1, col2)
のペアです。
どのように解決するのですか?
<ブロッククオート(col1, col2)の組ごとに、最も高いcol3を持つ行を表示したい。
それは グループワイズ最大 SQLの質問で最もよく聞かれるものの1つです(簡単そうに見えて実はそうでもないため)。
私はよくNull-self-joinを採用します。
SELECT t0.col3
FROM table AS t0
LEFT JOIN table AS t1 ON t0.col1=t1.col1 AND t0.col2=t1.col2 AND t1.col3>t0.col3
WHERE t1.col1 IS NULL;
"テーブルの中で、col1,col2が一致する他の行がcol3より大きい行を取得します。" (これや他のほとんどのグループワイズマキシマム解は、複数の行が同じcol1,col2,col3を持つ場合、複数の行を返すことに気がつくと思います。もしこれが問題なら、何らかの後処理が必要かもしれません)。
関連
-
[解決済み】MySQLを使用してランダムでユニークな8文字の文字列を生成する方法
-
[解決済み] この操作を行うには、少なくとも1つのSUPER権限が必要です。
-
[解決済み] Mysql: const テーブルを読み込んだ後、不可能な場所に気づいた。
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] 最初の行への結合方法
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】MySQLの「ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションを再起動してみてください」を回避する方法
-
[解決済み】Fatal error: mysqldをrootで実行する方法は、マニュアルの「セキュリティ」セクションをお読みください。
-
[解決済み】MySQLのエラーコードです。MySQL WorkbenchでUPDATE中に1175のエラーが発生しました。
-
[解決済み] "sqlstate[23000]: 整合性制約違反 "を有効な制約で
-
[解決済み] SQLキー、MUL vs PRI vs UNI
-
[解決済み] テーブルのストレージエンジンは修復をサポートしていません。InnoDB または MyISAM?
-
[解決済み] MySQLです。テーブルを作成できません (errno: 150)
-
[解決済み] MySQLから最後のN行を選択する
-
[解決済み] MySQL でネストされたトランザクションは可能ですか?
-
[解決済み] mysql サーバーがクラッシュした -mysqld got signal 6