这是一个表,由以下条目组成

MODEL   VALVE_SIZE  D
PT21-15   2.5      150
PT21-15   2.8      180
PT21-15   3.2      240
PT21-20   2.8      215
PT21-20   3.2      250

我想获取值d在150-250之间的行,模型名不应重复。
我正在使用(选择型号,阀门尺寸来自dis,其中d>=150和d预期产量
MODEL   VALVE_SIZE  D
PT21-15   2.5      150
PT21-20   2.8      215

最佳答案

您的示例数据和输出意味着您希望每个模型都有一个最小的d值(或可能valve_size值)的记录。在这种情况下,可以尝试以下查询:

WITH cte AS (
    SELECT model, valve_size, d,
           ROW_NUMBER() OVER (PARTITION BY model ORDER BY d) rn
    FROM dis
    WHERE d >= 150 AND d < 250
)

SELECT t.model,
       t.valve_size,
       t.d
FROM cte t
WHERE t.rn = 1

关于sql - 想要删除单个表中的部分匹配的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41996650/

10-11 17:34