MySQL从同一字段中计算2个值

MySQL从同一字段中计算2个值,mysql,count,Mysql,Count,如何计算同一字段中的两个不同值?我有一个领域叫乔布斯,我想数一数在同一个查询中有多少医生和多少警察 这是我的查询,它计算这两个值,但返回相同的结果。我想把这个结果分开。我的问题是: USE DBAssignmentPartC; SELECT Cu_City as City, Count(Cu_Job) AS TotalPoliceDoctors FROM tblCustomers WHERE Cu_Job = 'Doctor' OR Cu_Job = 'Policeman' Group by C

如何计算同一字段中的两个不同值?我有一个领域叫乔布斯,我想数一数在同一个查询中有多少医生和多少警察

这是我的查询,它计算这两个值,但返回相同的结果。我想把这个结果分开。我的问题是:

USE DBAssignmentPartC;
SELECT Cu_City as City, Count(Cu_Job) AS TotalPoliceDoctors FROM tblCustomers
WHERE Cu_Job = 'Doctor' OR Cu_Job = 'Policeman'
Group by Cu_City ORDER BY TotalPoliceDoctors DESC;
是否仍有可能计算医生和警察的人数,并将他们分列返回

我曾尝试在这里和谷歌上搜索,但作为一名一年级学生,我可能搜索/使用了错误的术语,如果回答了这个问题,我很抱歉,我错过了


感谢您提供的advanced

试试这个。每个城市应该有两排人,一排是警察,一排是医生

USE DBAssignmentPartC;
SELECT Cu_City as City, Count(Cu_Job) AS count FROM tblCustomers
WHERE Cu_Job = 'Doctor' OR Cu_Job = 'Policeman'
Group by Cu_City, Cu_Job ORDER BY count DESC;

只需将您的
计数(Cu_Job)
更改为
SUM(Cu_Job=“医生”)、SUM(Cu_Job=“警察”)

这将按城市返回每个医生的计数、每个警察的计数以及总计数

注:
为了让您知道这是如何工作的(以便您可以在需要时向教授解释)
SUM(Cu_Job=“Doctor”)
返回一个布尔值,表示每行
Cu_Job=“Doctor”
将为真或假。MySQL(以及基本上所有其他编程语言)将true视为1,将false视为0。因此,将“真”值相加可以计算出列中的具体值。

谢谢您的回答。我已经试过了,但不幸的是结果仍然在同一列中。@Jamiestutton我的错,应该是count cu_job而不是*。怎么样now@JamieSutton当然可以这有意义吗?@JohnRuddell是的,有点意义……然后1-0结束意味着什么?谢谢你的帮助,希望我能给你+1,但不能@JamieSutton和ELSE端都是MySQL案例陈述的一部分。。这是合乎逻辑的<代码>CASE当我的条件是其他类似于IF语句的东西时。。所以我有一个声明说,如果这一行是医生或警察,那么输入一个1进行合计,或者输入一个0,因为我们不想计算其他人。谢谢你的提议!如果你有足够的代表,请随时回来告诉我一个:)我继续回答你的问题,给了你+1分!
SELECT 
    Cu_City as City, 
    SUM(Cu_Job = "Doctor") as totalDoctors , 
    SUM(Cu_Job = "Policeman") AS totalPolice, 
    SUM(CASE WHEN Cu_Job = "Doctor" OR Cu_Job = "Policeman" THEN 1 ELSE 0 END) AS TotalPoliceDoctors 
FROM tblCustomers
GROUP BY Cu_City 
ORDER BY TotalPoliceDoctors DESC;