Row_Number を使用した SQL の個別の行番号
SQL の個別のクエリは、指定された列から一意の値を取得するために使用されます。ただし、個別の値だけでなく、それに対応する行番号も表示することが望ましいシナリオもあります。これを実現するには、Row_Number 関数を DISTINCT キーワードと組み合わせて使用できます。
この例では、ユーザーは DISTINCT と Row_Number を組み合わせて、行番号とともに個別の値を表示しようとしました。
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
ただし、このクエリは次のクエリと同様に、個別の値のみを生成しました:
SELECT distinct id FROM table WHERE fid = 64
これを解決するにはこの問題では、Row_Number の代わりに DENSE_RANK 関数を使用できます。 DENSE_RANK は、データ内のギャップに関係なく、連続する行番号を個別の値に割り当てます。
修正されたクエリは次のとおりです:
SELECT distinct id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
このクエリは、目的の結果、つまり個別の値のリストを提供します。意図したとおり、対応する行番号が付けられます。
以上がSQL で行番号を個別の値に割り当てる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。