MySQL 确保所有性别都出现在输出中
MySQL Ensure All genders are present in the output
我的问题是我有两个表,我将在几秒钟内向您展示,然后我必须打印两个性别,如果是第一次访问,则计数总和为 1,如果随后的计数总和为 1 和等等,例如我有这个假想的表:
Table帕西特
---------------------
id| name |sex|
01| george |m |
02| laura |f |
03| holly |f |
04| bill |m |
05| gene |m |
06| elizabeth|f |
---------------------
Table 咨询
------------------------
id|diagnostic|id_pacient
01| random |01
02| random |02
03| random |04
04| random |01
05| random |04
06| random |03
07| random |06
08| random |05
09| random |03
------------------------
到目前为止我有这个 mysql 查询:
select
sex,
sum(visits = 1) single_visit,
sum(visits > 1) subsequent
from (select p.sex, count(*) as visits
from pacient p
join consulting c on p.id=c.id_pacient
group by c.id_pacient) x
来自自己数据库的结果:
-------------------------
sex|single_visit|subsequent
m |24 |2(wrong value)
-------------------------
问题是上面只显示了一种性别,而不是其中的两种性别,打印的后续值是两种性别访问的总和我要求的最终输出应该是这样的:
请 HELP:Final 并更正输出(来自我自己的数据库):
-------------------------
sex|single_visit |subsequent
m |24 | 1
f |0 | 1
-------------------------
你需要在末尾添加一个group by
作为
select
sex,
sum(visits = 1) single_visit,
sum(visits > 1) subsequent
from (select p.sex, count(*) as visits
from pacient p
join consulting c on p.id=c.id_pacient
group by c.id_pacient) x
group by sex
我的问题是我有两个表,我将在几秒钟内向您展示,然后我必须打印两个性别,如果是第一次访问,则计数总和为 1,如果随后的计数总和为 1 和等等,例如我有这个假想的表:
Table帕西特
---------------------
id| name |sex|
01| george |m |
02| laura |f |
03| holly |f |
04| bill |m |
05| gene |m |
06| elizabeth|f |
---------------------
Table 咨询
------------------------
id|diagnostic|id_pacient
01| random |01
02| random |02
03| random |04
04| random |01
05| random |04
06| random |03
07| random |06
08| random |05
09| random |03
------------------------
到目前为止我有这个 mysql 查询:
select
sex,
sum(visits = 1) single_visit,
sum(visits > 1) subsequent
from (select p.sex, count(*) as visits
from pacient p
join consulting c on p.id=c.id_pacient
group by c.id_pacient) x
来自自己数据库的结果:
-------------------------
sex|single_visit|subsequent
m |24 |2(wrong value)
-------------------------
问题是上面只显示了一种性别,而不是其中的两种性别,打印的后续值是两种性别访问的总和我要求的最终输出应该是这样的:
请 HELP:Final 并更正输出(来自我自己的数据库):
-------------------------
sex|single_visit |subsequent
m |24 | 1
f |0 | 1
-------------------------
你需要在末尾添加一个group by
作为
select
sex,
sum(visits = 1) single_visit,
sum(visits > 1) subsequent
from (select p.sex, count(*) as visits
from pacient p
join consulting c on p.id=c.id_pacient
group by c.id_pacient) x
group by sex