首页 > 解决方案 > 在单个 SQL 查询中进行计数

问题描述

标题是可悲的,我真的不知道如何比这个问题更好地表达这个问题,让我解释一下。

我有一个Tests表格和TestAttendance表格,每次用户使用用户 ID 和测试 ID 进行测试时,我都会在其中创建一条记录。

我想做的是:在列出测试时,我想显示每个测试的服务员总数。

(
  SELECT COUNT(ta.id)
  FROM TestUserAttendances ta
  JOIN Tests t ON ta.testId = t.id
)

上面的查询在不区分测试的情况下返回服务员总数,因此我希望它单独显示每个测试时添加到每个测试的服务员总数。

标签: mysqlsqlpostgresqlmariadbbackend

解决方案


您需要使用 GROUP BY:

SELECT ta.test_id,count(*) from FROM TestUserAttendances ta JOIN Tests t ON 
ta.testId = t.id group by ta.test_id

推荐阅读