1
私はCSVファイルを受け取りました。その1つの列には、Jack、Clark、Jamesのような名前が1つのセルにあります。もう一つはJamesを、もう一つはJames、Clarkと一緒にいます。それらにすべての行を与えずにGROUP BY
とCOUNT(*)
の方法がありますか?一瞬のために言う古い格言を無視名前でカンマで区切られたMySQLグループ
私はCSVファイルを受け取りました。その1つの列には、Jack、Clark、Jamesのような名前が1つのセルにあります。もう一つはJamesを、もう一つはJames、Clarkと一緒にいます。それらにすべての行を与えずにGROUP BY
とCOUNT(*)
の方法がありますか?一瞬のために言う古い格言を無視名前でカンマで区切られたMySQLグループ
「あなたはが何かを行うことができますという理由だけで、それが意味するものではありませんあなたべき」、とでPRIMARY KEYの存在に注目し、私のデータセットはあなたのものではありません。
SELECT * FROM ints;
+---+
| i |
+---+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+---+
SELECT * FROM my_table;
+----+--------------------+
| id | names |
+----+--------------------+
| 1 | steve,james,carlos |
| 2 | james |
| 3 | carlos,steve |
| 4 | james,jack |
+----+--------------------+
SELECT name
, COUNT(*) total
FROM
(SELECT DISTINCT id
, SUBSTRING_INDEX(SUBSTRING_INDEX(names,',',i),',',-1) name
FROM my_table x
, ints
) a
GROUP
BY name;
+--------+-------+
| name | total |
+--------+-------+
| | 4 |
| carlos | 2 |
| jack | 1 |
| james | 3 |
| steve | 2 |
+--------+-------+
あなたはmysqlテーブルまたはcsvファイルについて話していますか?セル内のデータは原子的でなければならないため、セル内の2つ以上の名前は3つの正規形ではありません。 – user6622043