查找列值为“p”的行

pw136qt2  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(266)

我有表“相机”,我需要找到谁的相机只使用相机\模式'p'和没有其他模式。
表结构

Cam_serial_no     Camera_mode

abc123             P
abc123             B
abc123             V
pqr111             P
xyz101             P
xyz101             V
xyz101             B

我可以使用下面的查询获得所需的输出,但我想知道是否有任何简单的方法

select * 
from (select Cam_serial_no, collect_set(camera_mode) as val 
      from camera 
      group by Cam_serial_no
) a 
where size(val)=1 and val[0] = 'P';

期望输出为

pqr111             P
carvr3hs

carvr3hs1#

分组依据 Cam_serial_no 只拿那些除了 P ```
select Cam_serial_no
from camera
group by Cam_serial_no
having sum(Camera_mode <> 'P') = 0

相关问题