SQL(8) one-hot(多值列拆分成二值)

sql 刷题

    • 1、多值列拆分成二值

1、多值列拆分成二值

SQL(8) one-hot(多值列拆分成二值)_第1张图片
SQL(8) one-hot(多值列拆分成二值)_第2张图片

-- (1) 拆分列
SELECT id, INSTR(fruits, 'apple') AS apple, INSTR(fruits, 'banana') AS banana
FROM consume_fruits;

-- (2)去重 distinct/group by
-- (3) 求和
SELECT t.id, SUM(apple) AS apple, SUM(banana) AS banana
FROM (SELECT s.*
	FROM (SELECT id, INSTR(fruits, 'apple') AS apple, INSTR(fruits, 'banana') AS banana
		FROM consume_fruits) s
	GROUP BY s.id, s.apple, s.banana) t
GROUP BY t.id;

你可能感兴趣的:(SQL)