php C 显示数据库表中的动态范围并计算每个范围内的行数
我想显示不同的5岁年龄段以及该范围内的学生人数,如下所示:
在这里,最低年龄是10岁,所以我们首先计算10-15的范围.该范围内有5名学生.对于第二个范围,我们需要找到年龄
我有这样的数据库表: 我想显示不同的5岁年龄段以及该范围内的学生人数,如下所示: 在这里,最低年龄是10岁,所以我们首先计算10-15的范围.该范围内有5名学生.对于第二个范围,我们需要找到年龄≥15的18岁.因此,第二个范围是18-23,依此类推.如果有自动计算范围并计算该范围内的数据,我将不胜感激. 最佳答案 您可以使用SUM()语句中的条件来获取该条件所在的计数.我会计算年龄是BETWEEN()必要范围的条件.试试这个: SELECT SUM(age BETWEEN 10 AND 15) AS '10-15',SUM(age BETWEEN 18 AND 23) AS '18-23',SUM(age BETWEEN 26 AND 31) AS '26-31',SUM(age BETWEEN 34 AND 39) AS '34-39' FROM myTable;这只会返回一行,但它会包含您需要的所有内容.这是一个SQL Fiddle的例子. 编辑我误解了你的问题,以自动计算各种范围.我将在此留下我之前的答案,因为它可能对寻找硬编码范围的未来读者有益.为此,您必须设置变量.我做了一种运行总类型的方法来获得组.我开始在查询之前将@a设置为0.然后,我需要获得两个值: >年龄>表的最小年龄@一个 我通过在必要时更改@a的值来做到这一点: > @a:=(SELECT MIN(年龄)FROM myTable WHERE年龄> = @a) 然后,我将它们包含在一个CONCAT()块中,并将这些值作为字符转换,以获得我需要的组.它可能看起来很复杂,所以我希望我解释了这个概念: SELECT CONCAT (CAST(@a := (SELECT MIN(age) FROM myTable WHERE age > @a) AS CHAR),' - ',CAST((@a := @a + 5) AS CHAR)) AS ageRange FROM myTable WHERE @a(编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |