Sql server 如何编写输出在同一个表上的SQL代码?

Sql server 如何编写输出在同一个表上的SQL代码?,sql-server,tsql,Sql Server,Tsql,我知道在SQL Server中有一种方法可以做到这一点,但经过数小时的故障排除,我仍然没有找到解决方法 我希望性别和2年生存产出在同一张表中。以下是我用于按性别划分的单独输出的代码: -- Count # of patients by gender and count the number of patients that are alive - Females SELECT twoYrSurv AS WOMEN_2_YR_SURVIVAL, COUNT('gender') AS GENDER

我知道在SQL Server中有一种方法可以做到这一点,但经过数小时的故障排除,我仍然没有找到解决方法

我希望性别和2年生存产出在同一张表中。以下是我用于按性别划分的单独输出的代码:

-- Count # of patients by gender and count the number of patients that are alive - Females

SELECT twoYrSurv AS WOMEN_2_YR_SURVIVAL, COUNT('gender') AS GENDER_TOTALS
FROM dataLungCancer1$
WHERE gender = 'Female'
GROUP BY twoYrSurv

-- Count # of patients by gender and count the number of patients that are alive - Males

SELECT twoYrSurv AS MEN_2_YR_SURVIVAL, COUNT('gender') AS GENDER_TOTALS
FROM dataLungCancer1$
WHERE gender = 'Male'
GROUP BY twoYrSurv

-- Results after changing group by clause
SELECT twoYrSurv AS Two_YR_SURVIVAL, COUNT('gender') AS GENDER_TOTALS
FROM dataLungCancer1$
GROUP BY gender, twoYrSurv
输出

Two_YR_SURVIVAL GENDER_TOTALS
-----------------------------
Alive              86
Alive              201
Deceased           60
Deceased           103
解决方案:

SELECT twoYrSurv AS TWO_YR_SURVIVAL, gender AS GENDER, COUNT('gender') AS GENDER_TOTALS
FROM dataLungCancer1$
GROUP BY gender, twoYrSurv
结果:


为什么不按性别分组,twoYrSurv?并删除where子句。谢谢您的评论Dale!我多次尝试分组,结果都出错了。我只是按照你列出的那样尝试了一下,但我没有得到关于结果的男性或女性信息。不过我认为这是正确的,再次感谢!我需要一个包含女性和男性性别的列,或者行可以有标签,无论哪种方式,我都需要在输出中看到性别标签。再次感谢!你只需要在选择列表中添加性别。很好,我知道我遗漏了一些简单的东西,我把它放错了位置(或者忘记了逗号?)。我将在问题中为大家发布解决方案,再次感谢!我希望您认识到,
count('gender')
count(gender)
是非常不同的事情。在这里你很幸运,这没有什么区别。是的,从语法上来说,它们是不同的,但看起来它们读起来是一样的。不是运气,只是编程语言在这种情况下的工作方式。