sql中的distinct
程序员文章站
2022-06-11 17:08:45
...
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中的字段必须是表中的原生字段,不能是计算后的。
上一篇: 数组算法
下一篇: 小偷PHP+Html+缓存