mysql - 对列中的重复字段进行分组或消除重复字段

标签 mysql sql

我想将字段 1 的数据分组到字段 2 中数据较多的字段

+-----+----------+---------------+
| id  |  field1  |    field2     |
+-----+----------+---------------+
|  1  |   ONE    |   Medicine    |
|  2  |   TWO    |   Food        |
|  3  |   TWO    |   Medicine    |
+-----+----------+---------------+

我想要这样的东西

+-----+----------+---------------+
| id  |  field1  |    field2     |
+-----+----------+---------------+
|  1  |   ONE    |   Medicine    |
|  2  |   TWO    |   Food        |
|  3  |          |   Medicine    |
+-----+----------+---------------+

我不知道我是mysql新手是否可能

感谢您的宝贵时间

最佳答案

当组的第一条记录显示值时可以使用 case,否则为空字符串:

SELECT ID, 
  CASE ROW_NUMBER() OVER (PARTITION BY field1) WHEN 1 THEN field1 ELSE "" END AS FIELD1, 
  field2  
FROM table
;

关于mysql - 对列中的重复字段进行分组或消除重复字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56334749/

相关文章:

mysql - 在子查询中引用查询结果别名

mysql - 在同一引用中的同一列中查找两个值

MySQL 选择不在分组中的行

php - 获取没有信息模式的 FTS 索引名称

mysql - 为另一个表的每一行打开一个新表有什么缺点吗?

c# - 如何在 C# 中使用 IDictionary 和 mysql 创建关联数组?

mysql - 与 3 个相关表连接

php - 我如何在sqlquery中使用@符号

sql - SSIS - 获取行的最新记录

sql - 如何找到运行乘法