php – 显示数据库表中的动态范围并计算每个范围内的行数
我有这样的数据库表: 我想显示不同的5岁年龄段以及该范围内的学生人数,如下所示: 在这里,最低年龄是10岁,所以我们首先计算10-15的范围.该范围内有5名学生.对于第二个范围,我们需要找到年龄≥15的18岁.因此,第二个范围是18-23,依此类推.如果有自动计算范围并计算该范围内的数据,我将不胜感激. 最佳答案 您可以使用SUM()语句中的条件来获取该条件所在的计数.我会计算年龄是BETWEEN()必要范围的条件.试试这个:
这只会返回一行,但它会包含您需要的所有内容.这是一个SQL Fiddle的例子. 编辑我误解了你的问题,以自动计算各种范围.我将在此留下我之前的答案,因为它可能对寻找硬编码范围的未来读者有益.为此,您必须设置变量.我做了一种运行总类型的方法来获得组.我开始在查询之前将@a设置为0.然后,我需要获得两个值: >年龄>表的最小年龄@一个 我通过在必要时更改@a的值来做到这一点: > @a:=(SELECT MIN(年龄)FROM myTable WHERE年龄> = @a) 然后,我将它们包含在一个CONCAT()块中,并将这些值作为字符转换,以获得我需要的组.它可能看起来很复杂,所以我希望我解释了这个概念:
这样做给了我四行,每行都有你期望的年龄范围.我不得不添加where子句,否则我会为表中的每一行得到一个结果行,这会给我们几个空行. 最后,我添加了一个子查询,以获得年龄在必要范围内的学生的数量.注意,第一部分改变了@a的值,所以不是从@a检查到@a 5,而是从@ a-5检查到@a.这是最后的查询:
它在SQL Fiddle工作得很漂亮.完全动态并返回5个不同的组,而不知道要采取哪些组. 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
-
插入语句中C#应用程序中的MySql ODBC 5.1驱动程序的内存分配错误
我在C#中有一个.NET Wndows应用程序.这是一个使用MySq...[详细]
-
如何将ON DUPLICATE UPDATE与多值INSERT一起使用? IN...[详细]
-
我在Postgres中有一个多对多的连接表,我想索引到A)提...[详细]
-
sql-server – 如何在SQL Server数据库中设计用户/角色架构?
我想设计一个用户/角色系统: 用户具有名称和密码,然...[详细]
-
这是我的问题.例如,我有一个表包含一个字段的产品,名...[详细]
-
如下所示,我正在检查当前用户是否在table friend的use...[详细]
-
php – 不了解mysql语句DATE_ADD(NOW()INTERVAL)
我正在一个包含以下mysql行的页面上.总体目标只是将当...[详细]
-
我正在运行一个 python脚本,将大量数据插入到Postgres...[详细]
-
MySQL LIMIT / OFFSET:获取除第一个X之外的所有记录
我想查询50号及以上的所有记录.因此,我不想做LIMIT 49...[详细]
-
简单的网站访问量计数器实现,具体如下 首先说明 思路...[详细]