Mysql 如何合并多个sql查询
我有一个名为Users的表。我尝试通过以下查询从中获取一些数据: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列,具有唯一的名称、姓氏
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