mysql - 如何抑制连续的重复记录?

标签 mysql sql

在这种情况下,我有两个表连接在一起

表是:dprset1

我有这个代码:

SELECT distinct s.s1T, s.s1W, s.s1L, s.s1Reject, s.s1Quantity, s.s1Volume
FROM set1 s left join dpr d ON s.DPno = d.ProdNo
Where s.DPno = '20150205'
AND s.s1T = d.Thickness 
AND s.s1W = d.Width
AND s.s1L = d.Length;

这是我的 Cyrstal 报告中此查询的结果

示例:我只想显示 set1 中的数量和体积

Quantity    Volume
----------------------
  23        54
  0         0
  23        54
  0         0

在这种情况下,我的记录是重复的。我该如何解决这个问题?

我尝试使用此代码来抑制重复的“{set2.Quantity}) = previous({set2.Quantity})”,但它不起作用!

我只期待这个结果:

Quantity    Volume
----------------------
  23        54
  0         0

最佳答案

一般情况下,您可以使用具有排名功能的 CTE

;WITH C AS(
    SELECT RANK() OVER (PARTITION BY Quantity, Volume ORDER BY Quantity, Volume) AS Rnk
           ,Quantity
           ,Volume
    FROM yourTable -- Put your joins here
)
SELECT Quantity, Volume FROM C WHERE Rnk = 1

根据重复值,您的 PARTITION BYORDER BY 字段正在更改

有关 here 的更多信息

关于mysql - 如何抑制连续的重复记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468564/

相关文章:

sql - 窗口子句的解析函数和方法

sql - 具有大量或未定义类别的交叉表

sql - 在 PL SQL 过程中从外部源检索 POST 数据

php - 使用一个或几个 mysql 数据库。什么适合我?

Mysql - 选择 1 小时前创建的行

php - MySQL:在一条语句中选择项目的类别和(可选)子类别

MySql查询脚本统计每个月的活跃用户数

mysql选择问题,多表

mysql 数据透视查询和排名查询

php - 谷歌地图不显示标记