2017-11-24 7 views
0

私はすでにこのコードを試してみました:内部の状態をSQLにするにはどうすればいいですか?

SELECT Count(Gender) As MaleCount, Count(Gender) As FemaleCount 
    FROM [Session4].[dbo].[Survey] 
    Where Gender = 'M' or Gender = 'F' 

1つのクエリに2つの異なる条件で数えるとき、私は正確なデータを得ることができません。

以下の画像:

これは結果です。

enter image description here

これは、元のデータ

SELECT TOP (1000) [Departure] 
    ,[Arrival] 
    ,[Age] 
    ,[Gender] 
    ,[CabinType] 
    ,[Q1] 
    ,[Q2] 
    ,[Q3] 
    ,[Q4] 
FROM [Session4].[DBO].[Survey] 

enter image description here

答えて

5

回数説明です:

  • 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] 

を生成します次のようなもの:

MaleCount | FemaleCount 
1000  | 1255 

別の方法では

SELECT 
    Gender, 
    Count(*) 
FROM [Session4].[dbo].[Survey] 
GROUP BY 
    Gender 

することにより、簡単なgoupが生成されます:

Gender | Count 
M  | 1000 
F  | 1255 
3

はこれを試してみてください:

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] 

は私が疑問の場合に知らせてください。

関連する問題