首先做一下查询某个字段不重复(使用group by);
select * from 表名 where group by 不重复的字段名;
在做一下排序,我之前有发过一次排序,这次就做一个简单排序
order by 字段a=0 desc, 字段a desc,字段b desc (a字段等于0在最前面,a字段除了0之外的都为倒叙,b字段倒叙);
这样组合起来就好了
select * from 表名 where group by 不重复的字段名 order by 字段a=0 desc, 字段a desc,字段b desc;
需求说明 1、我需要查询某列不重复的数据 2、并且显示不重复数据的所有项 sql语句如下select * from data group by address 如果是仅仅查询某列不重复数据,只需要一列 效果如下 sql语句select DISTINCT address from data 这里有一个非常非常需要注意的地方: SELECT DISTINCT [字段名]后面不能再跟其他的字段,否则检索出来的记录仍然会含有重复项; 错误写法: SELECT DISTINCT [字段名] ,[其他字段名] FROM [表名] WHERE [检索条件字句]如果我们的记录集里还需要有其他字段值 ,那怎么办呢? 实际上,我们完全可以用另一种办法来解决问题只是需要用到子查询而已! 使用GROUP BY 分组 有一点需要注意: 使用带有GROUP BY字句的查询语句时,在SELECT列表指定的列要么是GROUP BY 指定的列,要么包含聚合组函数 所以用这样一句SQL就可以去掉重复项了: select * from msg group by terminal_id 这样就得到我们想要的结果集了:计数不重复方法如下:分组是必须的,在分组的情况下对符合条件的CLASS进行整个的不重复计数。
或者能先把CLASS这一列去掉,能在查询中再插一列做为新列也行要么不加WorkSubstance分组,只COUNT,要么不去count(DistinctClass),直接COUNTselectcount(DistinctClass)asClassfromClassDatewhereMachine='020-C03'andDateTime='2014-7-18'。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)