注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

庄庄的家

庄庄的家-网易博客

 
 
 

日志

 
 

sql语句,求总数,求平均数,降序排序  

2008-03-19 09:18:36|  分类: java试题 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

有道面试要求写sql语句,用到 求总数,求平均数,降序排序。当时忘记了求总数的函数了,用了count(*)的办法很麻烦。求总数直接用SQL语句的SUM函数就够了select sum(zcje),sum(srje) from szb 。
select pub_id,
(select sum(advance) from titles where pub_id = pub_id) as ad,
(select avg(price) from titles where pub_id = pub_id) as pr
from titles
where pub_id>0800 and ad>15000 and pr<20
order by desc

其中降序desc全称为descend,升序asc全称为ascend。发现自己总是没有把关键字给记住!笔试时很多关键字都写错了,上面的降序写成ace了,竟然连from都写成form了,这两个老是分不清楚,其实from是来自的意思,form是表单的意思,理解了意思就比较容易记住了。另外把知识管理公司AMT说成ATM了,集合类的顶层接口collection也写错了--本来是写对的又改成conlection了,看来还是英语没学好带来的麻烦阿!

SQL语言中常用的聚合函数,如AVG()求平均数,SUM()求和以及GROUP BY分组,Having等的使用
相关练习的数据库请参看:http://www.sqlzoo.cn/1_1.htm
练习题地址:http://www.sqlzoo.cn/2.htm
练习题答案及分析:
1a. 显示世界人口总和.
SELECT SUM(population) FROM bbc

1b. 列出所有的地区,但每个地区只能显示一次.
SELECT DISTINCT region FROM bbc
DISTINCET关键字只作用是如果有相同的行,那么仅显示一次。我们也可以使用GROUP BY来做这道题。如:
SELECT region FROM bbc GROUP BY region

1c. 显示GDP超过所有Africa(非洲)国家总和的国家.
SELECT name FROM bbc
WHERE gdp>
    (SELECT SUM(gdp) FROM bbc
     WHERE region='Africa')
这道题使用到了子查询。因为首先要求得非洲国家的GDP总和,因此这里使用子查询是最方便的

2a. 显示每个地区以及的该地区的国家总数.
SELECT region, COUNT(name) FROM bbc GROUP BY region

2b. 显示每个地区以及的该地区国家总人口数不少于1000万的国家总数.
SELECT region, COUNT(name) FROM bbc
WHERE population>=10000000
GROUP BY region

2c. 列出人口总数不少于1亿的地区.
SELECT region FROM bbc
GROUP BY region
HAVING SUM(population)>100000000

  评论这张
 
阅读(444)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017