select distinct 对单列去重,并取其他列第一行结果

所有数据

create table abc(id int, value int);
select id, value from abc;
+------+-------+
| id   | value |
+------+-------+
|    0 |     0 |
|    1 |     0 |
|    2 |     1 |
|    3 |     2 |
|    4 |     4 |
+------+-------+

value 去重

select distinct value from abc;
+-------+
| value |
+-------+
|     0 |
|     1 |
|     2 |
|     4 |
+-------+
select distinct value, id from abc;
+-------+------+
| value | id   |
+-------+------+
|     0 |    0 |
|     0 |    1 |
|     1 |    2 |
|     2 |    3 |
|     4 |    4 |
+-------+------+
select id, distinct value from abc;
语法报错

对 value 去重,id 取第一行

select min(id), value from abc group by value;
+---------+-------+
| min(id) | value |
+---------+-------+
|       0 |     0 |
|       2 |     1 |
|       3 |     2 |
|       4 |     4 |
+---------+-------+

故如果要对某一列 (value) 去重,且保留其他列,则需要用 group 和 min/max 配合使用。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值