发布网友 发布时间:2022-05-11 23:28
共3个回答
热心网友 时间:2024-03-11 15:36
group by 国家名称:按国家名称分组可得到每个国家名称对应的金牌数量追答是的,order by后面可以根据字段名或者是查询出来的第几列进行排序。所以你改成这样的语句的话,order by 1和order by 金牌数 是一个意思。另外这里的group by 语句的用法有点问题。如果按照上面的语句查询的话,会报错的。SQL中用group by要显示的字段中除了分组的条件以外都必须是聚合函数。所以要实现这个查询应该是
select 国家名称, sum(金牌数) from 国家,获奖牌情况;
where 国家.国家代码=获奖牌情况.国家代码;
group by 国家名称 order by 2 desc,国家名称 desc
当然我不是很清楚获奖牌情况表的结构,如果是一个金牌一条记录的话,这里就用count(*)来统计一个国家名称所对应的记录数了。
热心网友 时间:2024-03-11 15:37
能不能说清楚一点啊,这个看不明白啊,你的国家和获奖牌情况这两个表里面列是什么 ?热心网友 时间:2024-03-11 15:37
金牌数应该是获奖牌情况表的列按照组函数(比如SUM)得出来的。