SQL 我可以在一个查询中设置多个计数,然后让每个计数用于单独的选择吗?

标签 sql count

抱歉,我无法比标题更好地解释它。基本上;我只是想知道是否可以在初始选择中选择多个“count() as ___”,每个“count()”计算不同选择的行数。

或者我最好创建一个包含一个字段的新表,然后执行一个选择查询,并为要添加的每个新字段添加一个计数?

假设我想要下表:

NAME ---- # of cars ---- # of children ---- # of living relatives
Jon       2              2                  9
Jane      3              1                  10
Bob       1              1                  8

...每个 # 字段都取自其他选择,在这些选择中我将人的名字与他们相关的每辆车/ child /在世亲属联系起来。我可以执行一个包含多个 count(*) 的查询吗?或者最好使用带有单个计数的查询来启动一个表,这样我就有这样的东西:

NAME ---- # of cars
Jon       2
Jane      3
Bob       1

然后通过更多的单计数查询继续向其添加字段,以便一次添加一个新行,直到到达第一个表?

最佳答案

如果我正确理解您的问题,您正在寻找类似以下查询的内容:

SELECT name,

       (SELECT count(*) FROM childrens
        WHERE childrens.parent_name = users.name ) As `# of children`,

       (SELECT count(*) FROM cars
        WHERE cars.owner_name = users.name ) As `# of cars`   

        -- etc.
        -- etc

FROM users

演示:http://sqlfiddle.com/#!9/3473f/2

关于SQL 我可以在一个查询中设置多个计数,然后让每个计数用于单独的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30715179/

相关文章:

mysql - 如果查询有行,如何只运行子查询?

sql - 将星期几存储在单个列中的最佳方式

matlab - 如何使用matlab计算列中数字的相同值

php - mysql - 通过选择他们的名字来计算每个用户的状态

计算一个整数与自己相等的次数,然后计算百分比

mysql - SQL Join 仅返回一条记录

使用 Group By 时选择最高/最高计数的 SQL

python - 如何从数据库中同时检索对象?

sql - 将一个 SQL 字符串拆分为多个字符串

mysql - 以比此查询更快的方式计算数量