首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只选择冗余行,而不是原始行。

只选择冗余行,而不是原始行。
EN

Stack Overflow用户
提问于 2017-05-11 10:04:13
回答 1查看 63关注 0票数 0

所以我的任务是清理一个产生多余订单的系统。

问题的数据示例

代码语言:javascript
运行
复制
ORDER ID, SERIAL, ...
1         1
2         1
3         2
4         2
5         3
6         3
7         3

以上数据表明,序列1生成了2个订单,序列2生成了2个订单,序列3生成了3个订单,这是不允许的,每个序列应该只有一个订单。

因此,我需要一个只能识别冗余订单的查询。我想把原来的订单排除在外。

因此,上述数据的输出应该是:

代码语言:javascript
运行
复制
REDUNDANT ORDER IDS
2
4
6
7

使用GROUP BYHAVING COUNT(*) > 1,我可以很容易地识别哪些订单有重复,但棘手的部分是删除原始订单。

有可能吗?

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-11 11:35:38

如评论中所示,以下是实现这一目标的一种方法:

代码语言:javascript
运行
复制
SELECT T1.ORDER_ID as redundant
FROM thetable T1
LEFT JOIN
(
  SELECT SERIAL, MIN(ORDER_ID) AS firstorder
  FROM thetable
  GROUP BY SERIAL
  HAVING COUNT(*) > 1
) T2 ON T1.ORDER_ID=T2.firstorder
WHERE T2.firstorder IS NULL

SQL Fiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43912340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档