You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改SQL查询筛选单日至少2笔不同成交价的OrderID?

解决方案

要实现你的需求,核心是按订单+日期组合分组,检查每个分组内是否存在至少2笔交易且成交价不同,再提取对应的订单ID。

修改后的SQL查询如下:

SELECT DISTINCT OrderID
FROM ORDERTABLE
WHERE OrderID IN (
    SELECT OrderID
    FROM ORDERTABLE
    GROUP BY OrderID, Date
    HAVING COUNT(*) > 1 AND COUNT(DISTINCT Price) > 1
)

逻辑说明

  1. 子查询部分:
    • 按OrderID和Date联合分组,聚焦到同一个订单在同一天的所有交易
    • COUNT(*) > 1确保当天该订单有至少2笔交易
    • COUNT(DISTINCT Price) > 1确保当天这些交易的成交价存在差异
  2. 外层查询:
    • 通过IN子句筛选出符合子查询条件的订单ID,用DISTINCT避免重复输出同一个订单ID

匹配示例场景

  • OrderID 1:1.1.1111当天有2笔不同成交价的交易,子查询会命中该分组,所以会被筛选出来
  • OrderID 2:1.1.1111当天的2笔交易成交价相同,不满足COUNT(DISTINCT Price) >1,不会被命中
  • OrderID 3:不同日期的成交价不同,但同一天内的交易成交价都一致,没有符合条件的分组,所以不会被筛选

和原查询的区别

原查询是对整个订单的所有交易做统计,只要订单有多个不同成交价的交易(不管是否同一天)就会被选中;而新查询严格限定了同一天内必须存在多笔不同成交价的交易,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者Kamil Liskutin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 22:36:12