`

sql中分组,除了group by之外的用法

    博客分类:
  • SQL
 
阅读更多

表(kzw): 
id       xianlu_id       point_name       x                 y                       h                   biaod_id 
  1               19                   草桥     314594.654     494252.073                                 
  2               19                   草桥     314594.654     494252.073                   
  3               19               北宫门     315032.232     492997.054                                               
  4               19               北宫门     315032.232     492997.054                   
  5               19               北宫门     315032.232     492997.054                                 1 
  6               18         北三环路口   311013.473     496936.988                                 1 
  7               18         北三环路口   311013.473     496936.988   
  8               18         北三环路口   311013.473     496936.988     40.77 

筛选结果: 

id       xianlu_id       point_name       x                 y                       h                   biaod_id 
  1               19                   草桥     314594.654     494252.073                                 
  3               19               北宫门     315032.232     492997.054                                               
  5               19               北宫门     315032.232     492997.054                                 1 
  6               18         北三环路口   311013.473     496936.988                                 1 
  7               18         北三环路口   311013.473     496936.988   
  8               18         北三环路口   311013.473     496936.988     40.77 

数据表规律: 
id(自动编号),xianlu_id(数字),point_name(文本),x(文本),y(文本),h(文本),biaod_id(文本)。其中xianlu_id,point_name,x,y,h,biaod_id六个字段唯一确定一个数,为联合主键 

实现的效果: 
通过xianlu_id,point_name,x,y,h,biaod_id六个字段共同作用,去除重复项,但是要保证能查询出id字段 

我的方法: 

方法一:利用distinct去除重复项 

SELECT   distinct   point_name,x,y,h,xianlu_id,biaod_id   from   kzw   WHERE   xianlu_id   =   "&xianlu_id& "   ORDER   BY   point_name   ASC 

结果: 
显示记录正确,但是没有办法查询出id字段 


方法二:利用distinct去除重复项并取得id

SELECT distinct point_name,x,y,h,xianlu_id,biaod_id,max(id) from kzw WHERE xianlu_id = "&xianlu_id& " ORDER BY point_name ASC  

******************************************************************

例:

select a,b,c,d,e from table group by a,b,c,d

肯定是错得了,不过有时候业务需要,不能根据e分组。

这个时候就可以:select a,b,c,d,sum(case when e like '%*%' then 1 else then 0 end) group by a,b,c,d,e这里要根据e的情况而定,只适合部分需求

另外

可以先用function将要获取的值获取,然后 select a.* from table(function()) as a group by .....


分享到:
评论

相关推荐

    SQL中GROUP BY的用法

    SQL 中 GROUP BY 的用法及聚合函数 GROUP BY 是 SQL 中的一种分组查询语句,通常与聚合函数配合使用。GROUP BY 语句根据一个或多个列将查询结果分组,并对每组计算聚合函数的值。 在使用 GROUP BY 语句时,需要...

    sqlserver+group by分组查询分页存储过程

    根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...

    简单讲解sql语句中的group by的使用方法

    下面我们将详细讨论`GROUP BY`的使用方法及其相关知识点。 1. **`GROUP BY`的基本概念** `GROUP BY`关键字用于将数据表中的数据根据一个或多个列的值进行分组。通过分组,你可以对每个组应用聚合函数,这有助于...

    在SQL语言中用Group By子句实现除法.pdf

    在数据库查询语言SQL中,Group By子句是一种常用的聚合查询工具,它可以将数据集分成不同的组,对每组数据执行聚合函数操作,比如计算每个组的平均值、总和、最大值、最小值等。当与Select语句结合使用时,Group By...

    SQL语句中Group BY 和Rollup以及cube用法

    ### SQL语句中Group BY 和Rollup以及Cube用法 #### Group BY 子句 `GROUP BY`子句是SQL查询中的一个非常重要的部分,它用于将数据表中的行按照一个或多个列进行分组,使得可以对每个分组执行聚合函数(如SUM、...

    SqlServer中Group By高级使用--Inner Join分组统计

    今天我们将深入探讨如何在SQL Server中使用Group By与Inner Join结合来实现更复杂的分组统计。 首先,理解Group By的基本用法至关重要。Group By语句将结果集按照一个或多个列进行分组,这样我们可以对每个组应用...

    Sequelize中用group by进行分组聚合查询

    在SQL中,分组查询是通过`GROUP BY`子句来实现的,它可以将数据按照一个或多个列的值进行分组,通常结合聚合函数一起使用,以便对每个分组执行计算。 1. SQL中的分组查询 在SQL中,使用`GROUP BY`语句进行分组操作...

    mysql使用GROUP BY分组实现取前N条记录的方法

    本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...

    SQL GROUP BY 语句详解

    SQL GROUP BY 语句是数据库查询中非常重要的一个部分,它允许我们对数据进行分组,以便于统计和分析。在处理大型数据集时,GROUP BY 与聚合函数(如 SUM、COUNT、AVG、MAX 和 MIN)一起使用,能够帮助我们汇总数据,...

    SQL Server分组排序取数据的实现

    在SQL中,`GROUP BY`语句用于将数据根据一个或多个列进行分类,例如在示例代码中,我们根据`A.DocNo`, `A1.Item_ItemCode`, `A2.LineNum`, `A2.ARBillLine`, `A2.Maturity`, `A2.AROCMoney_TotalMoney`和`A2....

    Lucene group by ,分组实现

    "Lucene group by" 指的就是在 Lucene 中实现基于特定字段的分组操作,类似于 SQL 中的 GROUP BY 子句。这使得用户能够按类别聚合文档,例如,根据作者、日期或其他分类标准来查看搜索结果。 在 Lucene 中,分组...

    SQL语句中Group BY 和Rollup以及cube用法.txt

    SQL Server中的用法为group by colomn with [rollup|cube],首先要弄明白rollup 和cube,就要知道group by的用法,group by 为对列进行分组,只展现分组统计的值,而 rollup 为分层次展现,cube 为展现列中所有层次...

    Oracle中分组查询group by用法规则详解

    在Oracle数据库中,`GROUP BY`子句是一个关键的SQL元素,它允许用户根据一个或多个列的值将数据分组,以便对每个组进行聚合计算。以下是对`GROUP BY`用法的详细解释和规则: 1. **基本用法**: `GROUP BY`子句通常...

    SQL问题详解之_having_Group by

    在SQL查询中,GROUP BY和HAVING子句是数据分析和聚合操作的核心部分,它们帮助我们对数据进行分组和过滤,以获得更有意义的结果。在深入理解这两个子句之前,我们首先需要了解聚合函数,如SUM、COUNT、MAX和AVG等。 ...

    使用Group by分组统计.rar

    下面我们将深入探讨`GROUP BY`语句的使用方法及其相关知识点。 首先,`GROUP BY`语句的基本结构是这样的: ```sql SELECT column1, column2, ..., aggregate_function(column_name) FROM table_name WHERE ...

    sql中随机分组后的随机排序

    在SQL中实现随机分组后的随机排序是一种较为高级的数据处理技术,主要用于数据分析、报表生成等场景,能够帮助用户获得更加多样化的数据视图。本文将详细介绍如何通过SQL语句实现这一功能,并对其中涉及的关键概念和...

    sql 分组,统计等常用语句

    根据给定文件中的标题、描述、标签以及部分内容,本文将详细介绍SQL中分组与统计相关的常用语句及其应用场景。这不仅包括基本的分组查询、条件筛选,还涉及到了更高级的功能,如聚合函数的使用、ROLLUP和CUBE的区别...

    SqlServer GroupConcat

    因此,为了在SQL Server中实现类似的功能,我们需要依赖一些额外的工具或方法,如使用CLR(公共语言运行时)存储过程。 `SqlServer GroupConcat`的CLR实现是为了解决SQL Server中缺乏类似MySQL `GROUP_CONCAT`功能...

Global site tag (gtag.js) - Google Analytics