インクリメンタルな行番号を抜粋することなくタグを追跡するために、GoogleのゲームSEサイトで使用するDataExplorerのa queryを更新しようとしていました。結果に戻り値を読みやすくするためです。 this oneやthis oneのように、これらのユーザーのために働いていたように、これを行う方法についてはいくつか質問がありますが、私の状況ではうまくいかないようです。ROW_NUMBER()を使用してSELECTでインクリメンタルな "RowId"列を取得する方法
明確にするために、私はこのような何か希望:私はこれまでのところで作ってみた何
RowId | TagName | Count | Easy List Formatting
----------------------------------------------
1 | Tag1 | 6 | 1. [tag:tag1] (6)
2 | Tag2 | 6 | 1. [tag:tag2] (6)
3 | Tag3 | 5 | 1. [tag:tag3] (5)
4 | Tag4 | 5 | 1. [tag:tag4] (5)
をこのです:
SELECT ROW_NUMBER() OVER(PARTITION BY TagInfo.[Count] ORDER BY TagInfo.TagName ASC) AS RowId, *
FROM
(
SELECT
TagName,
[Count],
concat('1. [tag:',concat(TagName,concat('] (', concat([Count],')')))) AS [Easy List Formatting]
FROM Tags
LEFT JOIN Posts pe on pe.Id = Tags.ExcerptPostId
LEFT JOIN TagSynonyms on SourceTagName = Tags.TagName
WHERE coalesce(len(pe.Body),0) = 0 and ApprovalDate is null
) AS TagInfo
ORDER BY TagInfo.[Count] DESC, TagInfo.TagName
これは私が欲しいものに近いものが得られ、かなりではありません。 RowId
列はインクリメントされますが、Count
列が変更されるとリセットされます(おそらくPARTITION BY
のため)。しかし、PARTITION BY
を削除すると、RowId
の列は乱数のようになります。
テーブルが構造化されているので、私が達成したいことは達成可能ですか?もしそうなら、SQLはどのようなものでしょうか?
フォークされたクエリにアクセスするには、this linkを使用できます。とにかく助けがあれば、私の変更前の元のクエリはhereです。
パーフェクト。これはまさに私が後にしたものです。サブクエリも実行する必要がないように見えるので、私はそれをカットしました。 –
私の更新を見てください。 – ErikE