ホームページ >データベース >mysql チュートリアル >SQL で一意の値の行番号を表示するにはどうすればよいですか?
SQL を使用した一意の値の行番号の表示
SQL の DISTINCT キーワードは、一意の値のみを取得するために使用されます。指定された列から。この特定のケースでは、ROW_NUMBER() 関数を使用して列内の固有の値の行番号を表示することを目的としています。
ただし、指定したクエリは次のとおりです。
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
は、DISTINCT を使用して重複を効果的に排除しているため、予期した結果を返しません。その結果、次のクエリと同様に動作します:
SELECT DISTINCT id FROM table WHERE fid = 64
目的の出力を実現するには、代わりに DENSE_RANK() 関数を利用できます。 DENSE_RANK() は、重複する値がある場合でも、指定された順序で各個別の値に一意の行番号を割り当てます。
変更されたクエリは次のとおりです。
SELECT DISTINCT id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
これクエリは、条件 WHERE fid = を満たす行について、指定された列の一意の値に対応する行番号を提供します。 64.
以上がSQL で一意の値の行番号を表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。