我有一张如下表,请帮我建立它。不同条件下的相同列查询
实施例:
column 1 column 2
111111 100
111111 101
111111 102
222222 101
222222 102
333333 100
所以我寻找列1仅具有100但不是101或102的同一列。
从我上面的例子中,333333 100
正是我期待的,其中有100个,但不是101和102
我有一张如下表,请帮我建立它。不同条件下的相同列查询
实施例:
column 1 column 2
111111 100
111111 101
111111 102
222222 101
222222 102
333333 100
所以我寻找列1仅具有100但不是101或102的同一列。
从我上面的例子中,333333 100
正是我期待的,其中有100个,但不是101和102
您可以使用group by
和having
如果你想column1
value:
select column1
from t
group by column1
having sum(case when column2 = 100 then 1 else 0 end) > 0 and
sum(case when column2 in (101, 102) then 1 else 0 end) = 0;
如果这些是您关心的唯一三个值abou T,您可以简化这:
select column1
from t
where column2 in (100, 101, 102)
group by column1
having max(column2) = 100;
谢谢戈登,它完美的工作。 – Gireesh
尝试not exists
操作
SELECT *
FROM table t1
WHERE column2 = 100
AND NOT EXISTS (
SELECT * FROM table t2
WHERE t1.column1 = t2.column1
AND t2.column2 in (101, 102)
)
完美的作品,谢谢krokodilko – Gireesh
这听起来像你可能会试图做一个支点查询:
您正在使用什么数据库? – John
提供您到目前为止的SQL示例。 –
我在DB2中构建它。 – Gireesh