mysql:只用一条sql语句,如何查出一个表里,不同条件对应的数据条数

如下表:

id name age sex
1 a 1 0
2 b 10 1
3 c 2 1

得出:sex为1且age为2的数量,sex为1且age为5的数量,sex为1且age为10的数量
要求:效率高
可能我表达的不是很清楚,需要得出的是sex为1的情况下,有多少个是2岁,多少个是5岁,多少个是10岁这三个答案

mysql只用一条sql语句查出一个表里不同条件对应的数据条数的步骤如下:

我们需要准备的材料分别是:电脑、sql查询器。

1、首先,打开sql查询器,连接上相应的数据库表,例如stu2表。

2、点击“查询”按钮,输入:

select count(*) from stu2 where sex=1 and age=2

union all

select count(*) from stu2 where sex=1 and age=5

union all

select count(*) from stu2 where sex=1 and age=10

3、点击“运行”按钮,此时能只通过一条sql高效查询结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27

看一下这个SQL

select
sum(
if((sex = 1 and age = 2),1,0)
),
sum(
if((sex = 1 and age = 5),1,0)
),
sum(
if((sex = 1 and age = 10),1,0)
)
from a_test

 这个SQL现在就是得出的这个结果

本回答被提问者和网友采纳
相似回答