0 0

SQL SERVER 去除某个字段重复。。。3

城市A   城市B   号码1   时间1           价格    折扣
北京 大庆 1180331 2010-04-28 40100 39
北京 长春 1180395 2010-04-28 36800 38
北京 乌海 1180464 2010-04-28 41900 39
北京 潍坊 1180503 2010-04-28 25600 40
北京 泸州 1180561 2010-04-28 59500 38
北京 兰州 1215379 2010-04-28 52600 40
北京 兰州 1215381 2010-04-28 52900 40
北京 桂林 1215421 2010-04-28 72000 40
北京 桂林 1215422 2010-04-28 63000 35
北京 桂林 1215427 2010-04-28 72000 40
北京 桂林 1215428 2010-04-28 72000 40
北京 南宁 1215433 2010-04-28 80600 40
北京 珠海 1215439 2010-04-28 75500 40
北京 珠海 1215440 2010-04-28 75900 40
北京 珠海 1215441 2010-04-28 75900 40
北京 海口 1215442 2010-04-28 90000 40
北京 珠海 1215450 2010-04-28 75500 40
北京 珠海 1215451 2010-04-28 75500 40
北京 哈尔滨 1215481 2010-04-28 29000 30
北京 武汉 1215512 2010-04-28 41600 38
北京 武汉 1215514 2010-04-28 41600 38
北京 南昌 1215568 2010-04-28 52000 40
北京 沈阳 1215584 2010-04-28 27100 40

取出重复城市中最低价格(并且输出对应字段)。。。怎么查?谢谢了。
检索出数据如:
城市A   城市B   号码1   时间1           价格    折扣
北京 大庆 1180331 2010-04-28 40100 39
北京 长春 1180395 2010-04-28 36800 38
北京 乌海 1180464 2010-04-28 41900 39
北京 潍坊 1180503 2010-04-28 25600 40
北京 泸州 1180561 2010-04-28 59500 38
北京 兰州 1215379 2010-04-28 52600 40
北京 桂林 1215422 2010-04-28 63000 35
北京 南宁 1215433 2010-04-28 80600 40
北京 珠海 1215439 2010-04-28 75500 40
北京 海口 1215442 2010-04-28 90000 40
北京 哈尔滨 1215481 2010-04-28 29000 30
北京 武汉 1215514 2010-04-28 41600 38
北京 南昌 1215568 2010-04-28 52000 40
北京 沈阳 1215584 2010-04-28 27100 40

问题补充:
mginobili 写道
select 城市A,城市B,min(价格) 价格
from TABLE
group by 城市A,城市B

如果还要输出其他字段  那就

select t1.*, t2.号码1,t2.时间1,t2.折扣
from
(select 城市A,城市B,min(价格) 价格
from TABLE
group by 城市A,城市B) t1
left join
TABLE t2 on t1.城市A = t2.城市A and t1.城市B=t2.城市B and t1.价格=t2.价格

--------------------------------------------------------------------------
这样子有重复数据的。。如果上面
北京 兰州 1215379 2010-04-28 52600 40
北京 兰州 1215381 2010-04-28 52900 40
变成
北京 兰州 1215379 2010-04-28 52600 40
北京 兰州 1215381 2010-04-28 52600 40
会有重复数据。

问题补充:
mginobili 写道
你这数据都一样了呀

不行的话 再加个distinct


号码1是唯一的。distinct不行。。。。弄了几天了,都没有达到我的效果。

问题补充:
dengzh 写道
select 城市A,城市B,min(价格) 价格
from TABLE
group by 城市A,城市B

如果还要输出其他字段  那就

select t1.*, t2.号码1,t2.时间1,t2.折扣
from
(select 城市A,城市B,min(价格) 价格
from TABLE
group by 城市A,城市B) t1
left join
TABLE t2 on t1.城市A = t2.城市A and t1.城市B=t2.城市B and t1.价格=t2.价格


对这个语句再进行group by 城市A,城市B



这样行不通的。。。。

问题补充:*************************************************************************
没有人知道么?
*************************************************************************
2010年4月28日 14:31

3个答案 按时间排序 按投票排序

0 0

采纳的答案

你这数据都一样了呀

不行的话 再加个distinct

2010年4月28日 15:48
0 0

select 城市A,城市B,min(价格) 价格
from TABLE
group by 城市A,城市B

如果还要输出其他字段  那就

select t1.*, t2.号码1,t2.时间1,t2.折扣
from
(select 城市A,城市B,min(价格) 价格
from TABLE
group by 城市A,城市B) t1
left join
TABLE t2 on t1.城市A = t2.城市A and t1.城市B=t2.城市B and t1.价格=t2.价格


对这个语句再进行group by 城市A,城市B

2010年4月28日 16:36
0 0

select 城市A,城市B,min(价格) 价格
from TABLE
group by 城市A,城市B

如果还要输出其他字段  那就

select t1.*, t2.号码1,t2.时间1,t2.折扣
from
(select 城市A,城市B,min(价格) 价格
from TABLE
group by 城市A,城市B) t1
left join
TABLE t2 on t1.城市A = t2.城市A and t1.城市B=t2.城市B and t1.价格=t2.价格

2010年4月28日 14:49

相关推荐

    SQL Server连接字段的方法

    ### SQL Server连接字段的方法 在SQL Server中,经常会遇到需要将不同的字段进行组合或转换的情况,比如将分别存储年、月、日的三个字段合并成一个日期格式的字符串。这种需求在实际应用中非常常见,尤其是在处理...

    SQL SERVER 双引号问题处理

    ### SQL Server 双引号问题处理 在进行数据库操作时,我们经常需要用到各种各样的字符来构建复杂的查询语句。其中,SQL Server 使用单引号(' ')来标识字符串,这是一种约定俗成的做法。然而,在某些情况下,比如...

    SQL Server允许重复空字段不空字段值唯一

    在SQL Server数据库中,设计表结构时,有时我们需要确保某个字段的非空值是唯一的,但同时允许该字段为空并且可以有多个空值。在给定的标题和描述中,讨论了一个具体的问题和几种解决方案。 首先,问题在于创建了一...

    sql_按照某一个字段进行去重后获取全部字段

    SQL 去重是指从查询结果中去除重复的记录,只保留唯一的记录。这通常是为了提高数据处理效率或确保数据分析的准确性。 #### 2. SQL 去重的方法 SQL 提供了多种方法来实现去重: - **DISTINCT 关键字**:最简单的...

    SQL 去除字段中符号,只保留数字和字母

    --去除字段中符号,只保留数字和字母sql-- create FUNCTION DBO.REMOVE_SYMBLE(@S VARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN DECLARE @SQL VARCHAR(100) SET @SQL=''

    sqlserver-oracle 数据类型对照

    本文将详细比较SQL Server和Oracle数据库之间的数据类型对应以及常用函数的转换。 首先,我们来看SQL Server和Oracle的数据类型对照: 1. **数值类型**: - `bigint`在SQL Server中对应Oracle的`NUMBER(19)`,...

    轻松消除SQL SERVER重复记录

    标题提到的"轻松消除SQL SERVER重复记录"是指在SQL Server环境中高效、便捷地去除数据库表中的重复行。描述中提到的问题是开发人员在查询和统计时可能遇到的挑战,即由于重复记录导致的结果不准确。下面我们将详细...

    sql server 中合并某个字段值的实例

    在SQL Server中,有时我们需要对某个字段的值进行合并,特别是在数据分析或报表生成时,这种情况很常见。本实例探讨了如何在SQL Server中合并特定字段的值,特别是针对相同ID的记录。我们将通过一个实际的例子来理解...

    sql server中datetime字段去除时间的语句

    SQL Server 中 datetime 字段去除时间的语句 在 SQL Server 中,datetime 字段是一个常用的数据类型,用于存储日期和时间信息。然而,在某些情况下,我们可能需要将 datetime 字段去除时间部分,仅保留日期部分。...

    sqlserver的存储过程与 where in 多值参数

    在SQL Server中,存储过程是预编译的SQL语句集合,它们封装了特定的数据库操作,提高了代码的重用性和执行效率。当涉及到处理多个值时,我们常常会遇到如何将这些值作为参数传递给存储过程的问题。本文将探讨在SQL ...

    SQL Server单引号两种处理技巧

    采用非绑定方式时许多程序员大都忽略了对单引号的特殊处理,一旦SQL语句的查询条件的变量有单引号出现,数据库引擎就会报错指出SQL语法不对,本文介绍了两种可以解决和处理这种单引号的问题的方法。

    SQL Server2005基本方法和语句

    - UNION:返回两个查询结果集的并集,并去除重复行。 - EXCEPT:返回第一个查询结果集中不在第二个查询结果集中的行。 - INTERSECT:返回两个查询结果集的交集。 #### 12. 连接操作 连接操作用于组合两个或多个...

    sql server 提取汉字/数字/字母的方法 demo

    ### SQL Server 提取汉字、数字、字母的方法 在SQL Server中,经常需要处理字符串,比如提取其中的特定字符集(如汉字、数字或英文字母)。本文将介绍如何使用SQL Server编写函数来实现这些功能,并提供示例代码...

    SQL Server删除重复数据的几个方法

    ### SQL Server删除重复数据的方法 在数据库管理过程中,经常会遇到需要清理重复数据的情况。重复数据不仅浪费存储空间,还可能导致数据分析结果出现偏差。对于SQL Server而言,有多种方法可以用来删除重复的数据,...

    SQLServer2005考试题及答案

    使用`DISTINCT`关键字可以去除重复行,`UNION`运算符用于合并多个查询结果集,而`GROUP BY`通常与聚合函数一起使用,用于对数据进行分组。 5. **DBCC SHRINKDATABASE**:此命令用于收缩数据库,其中的数字参数表示...

    SQl server练习50题

    3. DISTINCT关键字:用于去除重复的行,如 `SELECT DISTINCT ColumnName FROM TableName`。 4. ORDER BY子句:用于对结果集进行排序,如 `SELECT * FROM TableName ORDER BY ColumnName ASC/DESC`。 5. GROUP BY与...

    SQLServer索引碎片和解决方法

    SQLServer中的索引碎片是影响数据库性能的重要因素,它分为外部碎片和内部碎片两种类型。外部碎片发生在索引页不在其逻辑顺序上时,导致查询过程中需要额外的页切换,尤其是对于返回有序结果集的查询,这将显著降低...

    SQL Server数据库基础学习笔记

    LIMIT语句(在SQL Server中常表示为TOP或结合RowNumber函数)用于限制返回结果的数量,DISTINCT关键字用于去除重复数据。UNION操作用于合并多个查询的结果,若需包含重复数据,可使用UNION ALL。 此外,还有一些...

Global site tag (gtag.js) - Google Analytics