分组或消除列中的重复字段

时间:2019-05-28 03:47:47

标签: mysql sql

我想对字段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中是否可能是新的

感谢您的时间

2 个答案:

答案 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;