Mysql Oracle从另一列中选择有值和无值的列条目

Mysql Oracle从另一列中选择有值和无值的列条目,mysql,oracle,Mysql,Oracle,我有一个表,我想得到s,其中s有p1,但没有p2 表s 标准普尔# s1 p1 s1 p2 s1 p3 s1 p4 s2 p1 s2 p3 s3 p2 s3 p3 我的结果应该是s2。where子句和联接我尝试返回s1和s2,这是错误的。尝试以下操作: SELECT s# FROM (SELECT s#, SUM(CASE WHEN p# = 'p1' THEN 1 ELSE 0 END) p1ct , SUM(CASE WHEN p# = 'p2' THE

我有一个表,我想得到s,其中s有p1,但没有p2

表s
标准普尔#

s1 p1

s1 p2

s1 p3

s1 p4

s2 p1

s2 p3

s3 p2

s3 p3

我的结果应该是s2。where子句和联接我尝试返回s1和s2,这是错误的。

尝试以下操作:

SELECT s#
  FROM (SELECT s#, SUM(CASE WHEN p# = 'p1' THEN 1 ELSE 0 END) p1ct
                 , SUM(CASE WHEN p# = 'p2' THEN 1 ELSE 0 END) p2ct
          FROM s
         GROUP BY s#)
 WHERE p1ct > 0
   AND p2ct = 0;