私のデータは次のようなものです。mysqlクエリを使用して重複データを削除する方法
name day1 day2 day3
Anand P NA NA
Anand NA P NA
Anand NA NA P
I want result like this
name day1 day2 day3
Anand P P P
グループ句は最初の行データのみを与えます。 私にmysqlクエリを提案してください。テーブル名はatt_tableとすることができます。
私のデータは次のようなものです。mysqlクエリを使用して重複データを削除する方法
name day1 day2 day3
Anand P NA NA
Anand NA P NA
Anand NA NA P
I want result like this
name day1 day2 day3
Anand P P P
グループ句は最初の行データのみを与えます。 私にmysqlクエリを提案してください。テーブル名はatt_tableとすることができます。
これを試してみてください。そして、
SELECT
name,
GROUP_CONCAT(IF(day1 = 'NA', NULL, day1)),
GROUP_CONCAT(IF(day2 = 'NA', NULL, day2)),
GROUP_CONCAT(IF(day3 = 'NA', NULL, day3))
FROM att_table
GROUP BY name;
あなたがNULL
でNA
値を置き換えるためにNULLIF
を使用することができ、そして:文字列ではなくSQLのNULL
値である
SELECT
name,
GROUP_CONCAT(day1),
GROUP_CONCAT(day2),
GROUP_CONCAT(day3)
FROM att_table
GROUP BY name;
'NA'
場合は、代わりにこれを試してくださいMAX()
を使用して、各グループ内のnull以外の値を取得します。
SELECT name, MAX(NULLIF(day1, 'NA')) AS day1, MAX(NULLIF(day2, 'NA')) AS day2, MAX(NULLIF(day3, 'NA')) AS day2
FROM att_table
GROUP BY name
NAとは何ですか?それはヌルですか? –
P/NAの代わりに1/0を使用した場合、sum()をgroup byと組み合わせると、結果が得られます。 –
フィールドに含まれる値は何ですか? intまたは文字列??? –