Chr*_*dan 0 sql sql-server where conditional-statements
我已经尝试过这段代码:
SELECT Count(Gender) As MaleCount, Count(Gender) As FemaleCount
FROM [Session4].[dbo].[Survey]
Where Gender = 'M' or Gender = 'F'
Run Code Online (Sandbox Code Playgroud)
在一个查询中使用两个不同的条件进行计数时,我无法获得准确的数据.
图片如下:
这是结果.
这是原始数据
SELECT TOP (1000) [Departure]
,[Arrival]
,[Age]
,[Gender]
,[CabinType]
,[Q1]
,[Q2]
,[Q3]
,[Q4]
FROM [Session4].[DBO].[Survey]
Run Code Online (Sandbox Code Playgroud)
计数说明:
COUNT(*) 统计所有行 COUNT(column) 计算非空值COUNT(distinct column) 计算不同的非空值COUNT(1) 与COUNT(*)相同用例/何时+总和:
SELECT
sum(case when Gender = 'M' then 1 else 0 end ) As MaleCount,
sum(case when Gender = 'F' then 1 else 0 end ) As FemaleCount
FROM [Session4].[dbo].[Survey]
Run Code Online (Sandbox Code Playgroud)
会产生这样的事情:
MaleCount | FemaleCount
1000 | 1255
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用简单的goup
SELECT
Gender,
Count(*)
FROM [Session4].[dbo].[Survey]
GROUP BY
Gender
Run Code Online (Sandbox Code Playgroud)
将产生:
Gender | Count
M | 1000
F | 1255
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3307 次 |
| 最近记录: |