首页 > 试题广场 >

athletes 表包含运动员姓名,年纪和代表国家。下面哪个

[单选题]

athletes 表包含运动员姓名,年纪和代表国家。下面哪个查询可以找出代表每个国家最年轻的运动员情况?

  • SELECT name, country, age FROM athletes WHERE (country, age) IN (SELECT country, min(age) FROM athletes GROUP BY country)
  • SELECT name, country, age FROM athletes WHERE (country, age) IN (SELECT min(age), country FROM athletes GROUP BY country)
  • SELECT name, country, age FROM athletes WHERE (country, age) IN (SELECT country, min(age) FROM athletes) GROUP BY country
  • SELECT name, country, age FROM athletes WHERE age IN (SELECT country, min(age) FROM athletes GROUP BY country)
in语句就是用于筛选, select job,sal from emp where job='salesman' or job='police' select job,sal from emp where job in ('salesman','police') 上面效果一样 1.用(county,age)两个属性去筛选,一般要有两个结果集才满足逻辑, 2.在后面那个结果集中先按国家分组,求出每个国家最小年龄的运动员,再用in或者等号去筛选(其实此处用等号我还没写过,测试过的可上传正确答案,不强求)
发表于 2018-03-07 15:11:56 回复(0)
更多回答
SELECT name, country, age FROM athletes WHERE (country, age) IN (SELECT country, min(age) FROM athletes GROUP BY country)
发表于 2021-05-12 15:34:53 回复(0)
A
发表于 2016-12-07 16:05:10 回复(0)
A:是正确的
B:嵌套查询的子查询列名顺序和in之前的返回列名不一致
C:group by是跟在where后面的
D:嵌套查询的子查询是有两个返回值,而In之前只有一个age所以数据只会返回age不会返回国家与题目不符.
发表于 2017-02-05 22:52:40 回复(1)
A
select后面写需要选择的列名,from表名,where进行条件选择
使用国家以及年龄进行筛选,要求这个国家和年龄是这个国家里年龄最小的
使用in进行筛选,in后面的数据应为每个国家年龄最小运动员数据,因此从运动员表中选择出国家及最小年龄,以国家进行分组,A正确
B由于in后面选择出表的列顺序与in前面查找数据的顺序不同无法得到该结果
C将以国家分组放在括号外面导致in后面括号中select语法错误,并且不符合题意
D只以年龄进行in筛选无法确定是哪个国家的运动员,无法得到正确结果
发表于 2017-01-28 12:32:39 回复(1)
C本身Sql语法有大问题
编辑于 2024-03-02 17:58:16 回复(0)
C语法错误
发表于 2021-07-31 19:56:54 回复(0)
嵌套子序列要与查询的时候的顺序一致
发表于 2021-07-09 08:48:05 回复(0)
只有个别数据库才支持where后跟多个字段吧。
发表于 2017-11-01 22:54:45 回复(0)

in前面的过滤字段还可以是多个啊!没用过

发表于 2017-05-01 10:44:08 回复(1)
A选项对吗?
SELECT country, min(age)   多个country对应一个age?

编辑于 2017-03-24 11:34:45 回复(0)