我有一張如下表,請幫我建立它。不同條件下的相同列查詢
實施例:
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