[解決済み] 1列のみのDISTINCT
2022-04-20 21:33:55
質問
例えば、次のようなクエリーがあるとします。
SELECT ID, Email, ProductName, ProductModel FROM Products
重複したEメールを返さないようにするには、どのように修正すればよいですか?
言い換えると、複数の行に同じメールが含まれている場合、そのうちの1行(できれば最後の1行)だけを結果に含めたいのです。他の列の重複は許可されるべきです。
のような節があります。
DISTINCT
と
GROUP BY
は、行全体で動作するように見えます。そのため、どのようにアプローチすればよいのかわかりません。
どのように解決するのですか?
SQL Server 2005 以降をお使いの場合は、こちらをご利用ください。
SELECT *
FROM (
SELECT ID,
Email,
ProductName,
ProductModel,
ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
FROM Products
) a
WHERE rn = 1
EDIT where節を使った例。
SELECT *
FROM (
SELECT ID,
Email,
ProductName,
ProductModel,
ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
FROM Products
WHERE ProductModel = 2
AND ProductName LIKE 'CYBER%'
) a
WHERE rn = 1
関連
-
plsql-stored-procedure ORA-06550 エラー処理
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] カラムの変更:NULLをNOT NULLに変更する
-
[解決済み] ATTACHで開いたSQLiteデータベースファイルのテーブルを一覧表示するにはどうすればよいですか?
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] ある列の最大値を持つ行を取得する
-
[解決済み] PostgreSQLで一重引用符で囲まれたテキストを挿入する
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み】1つの列のSELECT DISTINCT
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
org.postgresql.util.PSQLException: ERROR: リレーション "userinfo" の列 "loginid" が存在しません。
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] カラム名の変更 SQL Server 2008
-
[解決済み] SQLiteデータベースで、一度に複数行を挿入することは可能ですか?
-
[解決済み] SQL Server の CASE ステートメントで OR がサポートされていない。
-
[解決済み] PostgreSQLで一重引用符で囲まれたテキストを挿入する
-
[解決済み] SQLite - UPSERT *not* INSERT or REPLACE
-
[解決済み] DISTINCTでCOUNT(*)を選択する
-
[解決済み] 既存のカラムにIDを追加する
-
[解決済み】1つの列のSELECT DISTINCT