首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SELECT UNION并从一个表返回两个列的输出

使用SELECT UNION并从一个表返回两个列的输出
EN

Stack Overflow用户
提问于 2012-11-27 20:29:57
回答 4查看 23.9K关注 0票数 4

我正在创建一个查询,统计我的表中男女演员的数量。我目前的发言如下:

代码语言:javascript
复制
Select COUNT(ActorGender) “Male Actors” 
from (tblActor ta WHERE ta.ActorGender in(‘m’)
UNION
Select COUNT(ActorGender) “Female Actors” 
from tblActor ta 
WHERE ta.ActorGender in(‘f’);

最后的输出是:

代码语言:javascript
复制
Male Actors
-----------
          7
         21

我希望输出看起来像:

代码语言:javascript
复制
Male Actors   Female Actors
-----------   -------------
          7              21

我正在寻找一种替代方法来处理这个,而不使用子句的情况。

像往常一样提前感谢你的帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-27 20:59:21

另一种不用用例的方法:

代码语言:javascript
复制
select sum(males) as "Male Actors", sum(females) as "Female Actors" 
from 
(select count(actorGender) as Males, 0 as Females
from tblActor 
where actorGender = 'm'
union all
select 0 as males, count(actorGender) as Females
from tblActor
where actorGender = 'f')

应导致

代码语言:javascript
复制
Male Actors    Female Actors
-----------    -------------
7              21 
票数 7
EN

Stack Overflow用户

发布于 2012-11-27 20:53:20

另一种方法(没有CASE表达式):

代码语言:javascript
复制
SELECT 
  ( SELECT COUNT(*)
    FROM tblActor 
    WHERE ActorGender = 'm' 
  ) AS MaleActors
, ( SELECT COUNT(*)
    FROM tblActor 
    WHERE ActorGender = 'f' 
  ) AS FemaleActors
FROM 
    dual ;

以及使用CROSS连接的更多解决方案:

代码语言:javascript
复制
SELECT m.MaleActors, f.FemaleActors
FROM 
  ( SELECT COUNT(*) AS MaleActors
    FROM tblActor 
    WHERE ActorGender = 'm' 
  ) m
  CROSS JOIN
  ( SELECT COUNT(*) AS FemaleActors
    FROM tblActor 
    WHERE ActorGender = 'f' 
  ) f  ;
票数 9
EN

Stack Overflow用户

发布于 2012-11-27 20:32:43

这样做可以:

代码语言:javascript
复制
SELECT  COUNT(CASE WHEN ActorGender = 'm' THEN 1 ELSE NULL END) MaleActors,
        COUNT(CASE WHEN ActorGender = 'f' THEN 1 ELSE NULL END) FemaleActors
FROM tblActor 
WHERE ActorGender IN ('m','f')
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13592499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档