计算列中值的出现次数是数据库查询中的常见任务。在本次讨论中,我们将探索一种计算学生表中年龄出现次数的有效方法。
考虑具有以下结构的表:
id | age -------- 0 | 25 1 | 25 2 | 23
我们的目标是创建一个查询,返回学生信息以及相同年龄的学生数量,如图所示下面:
id | age | count ---------------- 0 | 25 | 2 1 | 25 | 2 2 | 23 | 1
为了实现高效的列值计数,我们可以利用以下 SQL 代码:
SELECT age, count(age) FROM Students GROUP BY age
此查询消除了 sub 的使用- 查询,这会显着影响性能。通过对年龄列上的结果进行分组,我们可以有效地统计每个年龄值的出现次数。
如果原始表结构需要包含 id 列,我们可以利用子查询如下:
SELECT S.id, S.age, C.cnt FROM Students S INNER JOIN (SELECT age, count(age) as cnt FROM Students GROUP BY age) C ON S.age = C.age
这种子查询方法允许我们在保持计数效率的同时包含 id 列操作。
以上是如何在保持性能的同时高效计算 SQL 中的列值?的详细内容。更多信息请关注PHP中文网其他相关文章!