0
に参加します。結果は次のようになります。重複行は、私がどの次のようにクエリを記述しようとしています(postgresの)
bsgId| sysId | gameNo | nameOfUser | scoreId
--------------------------------------------------
1234 | abcde | G-12 | admin | G-12/1/1
1235 | abcdf | G-15 | admin | G-15/1/3
1234 | abcdf | G-12 | user1 | G-12/1/8
1237 | abcdf | G-16 | user1 | G-16/2/4
ただし、パラメータテーブルの値が大きく、system_docのcity_idカラムにNULL値があります。クエリの左ジョイント部分を追加すると、次のようになります。
bsgId| sysId | gameNo | nameOfUser | scoreId | city
--------------------------------------------------
1234 | abcde | G-12 | admin | G-12/1/1 | city1
1235 | abcdf | G-15 | admin | G-15/1/3 | city5
1235 | abcdf | G-15 | admin | G-15/1/3 |
1234 | abcdg | G-12 | user1 | G-12/1/8 | city4
1234 | abcdg | G-12 | user1 | G-12/1/8 |
1237 | abcdf | G-16 | user1 | G-16/2/4 |
3番目と5番目のような行はありません。市の列にnullがあり、 "は都市のフィールドを除いてまったく同じデータを持っているこれらの行を避けるために"(実際には最後の行のように都市はヌルになる可能性がありますが、私はdistinct on(scoreId)
を使用しましたが、行#2を失い、行#3を失ってしまったので動作しませんでした。
都市のフィールドにnullが含まれている重複行を削除するにはどうすればよいですか?私の質問がはっきりしていることを願っています
私が知る限り、あなたは 'distinct on(bsgId、sysId、gameNo、nameOfUser、scoreId)'を使います。 'distinct on(scoreId) 'だけでなく、scoreIdはあなたが書いたすべてのフィールドでユニークなので、実際には同じです。 –
しかし、それでも、私は望ましくない結果を得ました。 nullの都市を含む行を削除する代わりに、このクエリによってnull以外の行が削除されることがあります –