我在整數值我的SQL計數問題
性別性別和婚姻狀況列存儲數據:
- 男
- 女
婚姻狀況:
- 單一
- 寡婦
- 已婚
我想說明的報告很多男性和女性如何在這個表中。也與婚姻狀況相同..我需要一個單一的查詢這個報告。
贊,伯爵(男)= 100和伯爵(女)= 140這個。 Like,Count(已婚)= 120,Count(單)= 100,Count(winddow)= 10這個。
請給我Mysql/PHP解決方案。
列數據詳細信息
|性別|婚姻狀況|
3210感謝,
我在整數值我的SQL計數問題
性別性別和婚姻狀況列存儲數據:
婚姻狀況:
我想說明的報告很多男性和女性如何在這個表中。也與婚姻狀況相同..我需要一個單一的查詢這個報告。
贊,伯爵(男)= 100和伯爵(女)= 140這個。 Like,Count(已婚)= 120,Count(單)= 100,Count(winddow)= 10這個。
請給我Mysql/PHP解決方案。
|性別|婚姻狀況|
3210感謝,
一種常見的伎倆是使用SUM,而不是COUNT,並把那行,你是1 SUM內的表達要計數,否則爲0。 1的和等於它們的COUNT。
SELECT
SUM(Gender=1) AS Male_Count,
SUM(Gender=2) AS Female_Count,
SUM(Marital_status=1) AS Single_Count,
SUM(Marital_status=2) AS Widowed_Count,
SUM(Marital_status=3) AS Married_Count
FROM mytable;
在MySQL,一個布爾表達式(如等式比較)返回1或0。這是不能在標準ANSI SQL或在大多數其他RDBMS實現的情況下,所以你必須寫出更長CASE
表達式,如果你想支持標準。
問題解決了。謝謝, – Muhammad
select
sum(case when gender = 1 then 1 else 0 end) as male,
sum(case when gender = 2 then 1 else 0 end) as female,
sum(case when gender = 1 and status = 1 then 1 else 0 end) as male_singles,
.... and so on
from table
你約
SELECT gender,status,count(*) FROM table GROUP BY gender,status
你需要兩個查詢嗎?或一個用於性別報告,另一個用於婚姻狀況? – Dirk
我嘗試使用這個,但沒有運氣'從個人 SELECT COUNT (性別)的女 WHERE 性別= 1 UNION 從個人 WHERE 性別= 2' – Muhammad
好選擇 COUNT(性別)的男 如果在兩個查詢中完成則沒問題。 – Muhammad