在 SQL 中对多个 select 使用 EXISTS

Use EXISTS in SQL for multiple select

我有一个 table STATUSES,其中包含列 NAME 和 ACTIVE_FLAG.The 列 NAME 的值可能有新的、未决的、取消的。我想用 ACTIVE_FLAG=Y

为每个 NAME 的计数生成一个新输出

通过考虑使用 EXISTS 到 select 记录单个 NAME,

SELECT COUNT(*) AS PENDING
FROM STATUSES
WHERE EXISTS (select NAME from STATUSES where NAME='Pending' and ACTIVE_FLAG = 'Y')

不管怎样,如果我能加入其他状态算在一个SQL?

好像是 countgroup by

SELECT 
    name
  , count(*)
FROM statuses
WHERE active_flag = 'Y'
GROUP BY name

你可以使用这样的东西,因为我认为没有必要使用 EXISTS :

SELECT sum(case when name='Pending' then 1 else 0 end) AS PENDING,
sum(case when name='new' then 1 else 0 end) AS NEW,
sum(case when name='cancel' then 1 else 0 end) AS CANCEL
FROM STATUSES
WHERE ACTIVE_FLAG = 'Y'

SQL HERE