下面先来看看例子:

table表

字段1字段2
idname
1a
2b
3c
4c
5b

库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。

比如我想用一条语句查询得到name不重复的所有数据,那就必须

使用distinct去掉多余的重复记录。

select distinct name from table
得到的结果是:

----------

name
a

c

好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:

select distinct name, id from table

结果会是:

----------

id name
1 a
2 b
3 c
4 c
5 b

distinct怎么没起作用?作用是起了的,不过他同时作用了两个

字段,也就是必须得id与name都相同的才会被排除

我们再改改查询语句:

select id, distinct name from table

很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。

--------------------------------------------------------

下面方法可行:

select *, count(distinct name) from table group by name

结果:

id name count(distinct name)
1 a 1
2 b 1
3 c 1

最后一项是多余的,不用管就行了,目的达到

group by 必须放在 order by 和 limit之前,不然会报错

更多相关文章

  1. 使用android访问SQLServer数据库
  2. 一次List对象去重失败,引发对Java8中distinct()的思考
  3. android通过C#的webservice与服务端进行数据通信(sqlserver)
  4. 使用JTDS连接sqlserver数据库
  5. android Studio与数据库SQLserver连接实现登录
  6. android直接链接sqlserver数据库
  7. Android如何连接SQLServer数据库
  8. Android(安卓)Studio环境下连接远程服务器中的sqlserver2012数据
  9. Android实现访问Sqlserver

随机推荐

  1. Android学习之 UI效果
  2. 学习资源推荐
  3. Android之Actionbar顶部标签的使用
  4. Android工程导入jar文件步骤
  5. android contentResolver的使用
  6. Android editText(文本框) 的基本属性及用
  7. Android中的广播Broadcast详解
  8. Setting Text to Image On Android and A
  9. Android设置activity横屏
  10. Android Handler内存泄露