68

の個別のキーワードと戦っていsqlます。列に一意の ( ) 値のすべての行番号を表示したいだけなdistinctので、試しました:

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

しかし、それを試したときRow_Number
それは機能していません。

4

8 に答える 8

118

これは非常に簡単に行うことができます。すでにかなり近づいていました。

SELECT distinct id, DENSE_RANK() OVER (ORDER BY  id) AS RowNum
FROM table
WHERE fid = 64
于 2013-08-08T08:26:56.783 に答える
6

を使用DISTINCTすると、フィールドを追加するときに問題が発生し、選択の問題が隠される可能性もあります。GROUP BY次のような代替手段として使用します。

SELECT id
      ,ROW_NUMBER() OVER (ORDER BY  id) AS RowNum
  FROM table
 where fid = 64
 group by id

次に、次のように選択から他の興味深い情報を追加できます。

,count(*) as thecount

また

,max(description) as description
于 2016-03-26T20:43:55.097 に答える