重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
select avg(A.年龄)
从网站建设到定制行业解决方案,为提供做网站、网站设计服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。成都创新互联公司将不断加快创新步伐,提供优质的建站服务。
from
(select name as 姓名,(year(getdate())-year(出生日期)) as 年龄 from [表名] ) A
假设表student有如下字段:id,name,age,dormitory(宿舍号),语句可以如下写
select * from student where age(
select max(t.age) from (
select avg(age) age from student group by dormitory
) t
)
这个语句是我随手写的,没经过数据库验证,你自己先看一下,需要修改的地方自己稍加改动就行,大致差不多这样的
mysql中年龄可以用agetinyint表示。根据查询相关公开信息显示:在mysql中表示人的年龄就可以用:agetinyint,表示表示乌龟的年龄就要用:agewgsmallint。
假如你有一个表, SQL CREATE TABLE test_tab (2 id INT, 3 name VARCHAR(10), 4 age INT, 5 val VARCHAR(10)6 );你的业务,有一个查询,是 SELECT * FROM test_tab WHERE name = 一个外部输入的数据 刚开始,数据不多的时候,执行效果还不错。 随着数据量的增加,这个查询,执行起来,越来越慢了。 然后在 name 上面 建立了索引 CREATE INDEX idx_test4_name ON test_tab (name ); 这样, 可以加快前面那个查询的速度。 但是,某天,你执行了下面这个SQL, 发现速度又慢了 SELECT * FROM test_tab WHERE age = 25 为啥呢? 因为 age 字段上面,没有索引 索引只在 name 上面有 换句话说, 也就是 WHERE 里面的条件, 会自动判断,有没有 可用的索引,如果有, 该不该用。 多列索引,就是一个索引,包含了2个字段。 例如:CREATE INDEX idx_test_name_age ON test_tab (name, age);那么SELECT * FROM test_tabWHEREname LIKE '张%' AND age = 25 这样的查询,将能够使用上面的索引。 多列索引,还有一个可用的情况就是, 某些情况下,可能查询,只访问索引就足够了, 不需要再访问表了。例如:SELECTAVG( avg ) AS 平均年龄FROMtest_tabWHEREname LIKE '张%' 这个时候, name 与 age 都包含在索引里面。 查询不需要去检索表中的数据。