sql中的distinct

distinct必须放在开头

select id, distinct name from A; –会提示错误,因为distinct必须放在开头

distinct是对行起作用,而不是列

当结果中含有多列时,distinct可以去掉重复项,这里的重复项是指所有字段都相等的行,并不能去年某列中相同的字段。

    name    age
0   yang     22
1   yang     22
2   yang     23

如上表所示,第0行和第1行是重复项,distinct(name)只会去掉0或1行,第2行会被保留,因为第2行的age是不同的。如果只是根据name来去重,而不考虑age,可以用group by。

常用count(distinct xxx)

可以和count(distinct name)结合使用,如:
先对年龄分给,再统计每个分组里不同姓名(去重后)的数量

select age, count(distinct(name))
from table
group by age #group by后的字段必须在select中出现,where中的字段必须是表中的原生字段,不能是计算后的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值