Mysql 如何合并多个sql查询

Mysql 如何合并多个sql查询,mysql,sql,Mysql,Sql,我有一个名为Users的表。我尝试通过以下查询从中获取一些数据: select name, lastname, gender, status, count(status = 'Trvl') as TrvlCount, count(status != 'Trvl') as NotTrvlCount, count(id) as TotalCount from Users group by name, lastname, gender, dob; 预期结果将是7列,具有唯一的名称、姓氏

我有一个名为Users的表。我尝试通过以下查询从中获取一些数据:

select name, lastname, gender, status, count(status = 'Trvl') as TrvlCount,
       count(status != 'Trvl') as NotTrvlCount, count(id) as TotalCount
from Users
group by name, lastname, gender, dob;
预期结果将是7列,具有唯一的名称、姓氏、性别、dob,以避免重复和不同状态的总和。但我无法纠正为什么所有3个计数列都显示相同的值或相同的和值

有什么想法吗,伙计们?提前感谢。

如果施工:

select name, lastname, gender, status, 
       sum(if(status = 'Trvl',  1, 0)) as TrvlCount,
       sum(if(status != 'Trvl',  1, 0)) as NotTrvlCount,
       count(id) as TotalCount
from Users
group by name, lastname, gender, dob;
如果构造为:

select name, lastname, gender, status, 
       sum(if(status = 'Trvl',  1, 0)) as TrvlCount,
       sum(if(status != 'Trvl',  1, 0)) as NotTrvlCount,
       count(id) as TotalCount
from Users
group by name, lastname, gender, dob;
您还可以使用子查询来完成此操作


也可以使用子查询执行此操作。

常规GROUP BY规则是:如果指定GROUP BY子句,则SELECT列表中的每个列引用必须标识分组列或是集合函数的参数。也就是说,我会尝试按姓名、姓氏、性别、状态分组。但我仍然得到相同的结果,jarlhCOUNT将只计算行数,如果您试图计算与这些条件匹配的行数,则尝试求和,因为TRUE等于1,FALSE等于0。常规分组规则是:如果指定了group by子句,选择列表中的每个列引用必须标识分组列或是集合函数的参数。也就是说,我会尝试按姓名、姓氏、性别、状态分组。但我仍然得到相同的结果,jarlhCOUNT将只计算行数,如果您试图计算与这些条件匹配的行数,则尝试求和,因为TRUE等于1,FALSE等于0