【问题标题】:Creating new Columns within a select在选择中创建新列
【发布时间】:2015-12-02 00:33:43
【问题描述】:

利用下面的“STUDENT”表,编写一个返回两列的查询:第一列名为“SMITH”,它应该返回姓氏“Smith”的学生人数;第二列名为“NOT_SMITH”,它应返回姓氏不为“Smith”的学生人数。

这是我正在尝试的项目,但我不知道如何完成它。我试图查找如何完成这个,但我不知道这个特定的函数会被调用什么。

我知道这不正确,但这是我开始的地方:

SELECT COUNT(*) FROM STUDENT 
CASE
 WHEN LAST_NAME = 'SMITH' THEN "SMITH"
 WHEN LAST_NAME != 'SMITH' THEN "NOT_SMITH"
GROUP BY COUNT AS

虽然我相信计数会正确,但这不会提供所需的列。

当前列是 STUDENT_ID、LAST_NAME、FIRST_NAME

如果有任何进一步的信息有帮助,请告诉我。

提前谢谢你!

【问题讨论】:

    标签: sql count


    【解决方案1】:

    你可以使用条件求和

     SELECT SUM( CASE WHEN LAST_NAME = 'SMITH' THEN 1 ELSE 0 END) as SmithCount,
            SUM( CASE WHEN LAST_NAME = 'SMITH' THEN 0 ELSE 1 END) as notSmithCount
     FROM Student
    

    如果您想将NULLs 视为notSmithCount,请小心

    【讨论】:

      猜你喜欢
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 2020-03-26
      • 2011-02-15
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多