我有GENDER和Marital_status列以整数值存储数据
性别:
婚姻状况:
我想要显示一张报告,表中有多少男性和女性。也与婚姻状况相同..我需要一个查询报告。
类似,Count(男性)= 100,Count(女性)= 140。
喜欢,Count(已婚)= 120,Count(单曲)= 100,Count(winddow)= 10。
请给我Mysql / PHP解决方案。
|性别|婚姻状况|
1 2
1 3
2 2
2 1
谢谢,
答案 0 :(得分:6)
一个常见的技巧是使用SUM而不是COUNT,并在SUM中将表达式放在要计数的行上为1,否则为0。 1的SUM等于它们的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实现中不是这种情况,因此您必须写出更长的{{1} }表达式,如果你想支持标准。
答案 1 :(得分:1)
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
答案 2 :(得分:1)
你好吗
SELECT gender,status,count(*) FROM table GROUP BY gender,status