我想对字段2中具有更多数据的字段1的数据进行分组
+-----+----------+---------------+
| id | field1 | field2 |
+-----+----------+---------------+
| 1 | ONE | Medicine |
| 2 | TWO | Food |
| 3 | TWO | Medicine |
+-----+----------+---------------+
我想要这样的东西
+-----+----------+---------------+
| id | field1 | field2 |
+-----+----------+---------------+
| 1 | ONE | Medicine |
| 2 | TWO | Food |
| 3 | | Medicine |
+-----+----------+---------------+
我不知道在mysql中是否可能是新的
感谢您的时间
答案 0 :(得分:3)
您可以在组的第一条记录显示值时使用大小写,否则为空字符串:
SELECT ID,
CASE ROW_NUMBER() OVER (PARTITION BY field1) WHEN 1 THEN field1 ELSE "" END AS FIELD1,
field2
FROM table
;
答案 1 :(得分:0)
该技术适用于任何版本
SELECT (
CASE WHEN (
SELECT count(b.f1)
FROM tbl b
WHERE b.f1 = a.f1 AND a.id > b.id) > 0
THEN '' ELSE a.f1 END) f1, a.f2
FROM tbl a
ORDER BY a.f1, a.id asc;