《SQL 21日自学通(V3.0)(PDF格式)》第30章


SQL》SELECT MIN AB FROM TEAMSTATS 
输出 
MIN(AB) 
1 
下列语句将返回名字在字母表中排在最前边的 
输入/输出 
SQL》SELECT MIN(NAME) FROM TEAMSTATS 
EMAIL wyhsillypig@163。 66 
…………………………………………………………Page 67……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
MIN(NAME) 
CASEY 
你可以同时使用 MAX 和 MIN 函数以获得数值的界限 例如 
输入/输出 
SQL》SELECT MIN AB MAX AB FROM TEAMSTATS 
MIN(AB) MAX(AB) 
1 187 
对于统计函数来说这一信息有时非常有用 
注 我们在今天开始曾说过 这五个函数是由 ANSI 标准所定义的 其余的函数也已 
经成为了事实上的标准 你可以在所有的 SQL 解释器中找到它们 这里 我们使用的它们 
在 ORACLE7 中的名字 在其它的解释器中它们的名称可能与这里提到的不同 
VARIANCE 
VARIANCE 方差 不是标准中所定义的 但它却是统计领域中的一个至关重要的数 
值 使用方法如下 
输入 
SQL》SELECT VARIANCE HITS FROM TEAMSTATS 
输出 
VARIANCE(HITS) 
802。96667 
如果我们在将它应用于字符串 
输入/输出 
SQL》SELECT VARIANCE NAME FROM TEAMSTATS 
ERROR 
ORA…01722 invalid number 
No rows selected 
可见 VARIANCE 也是一个只应用于数值对象的函数 
EMAIL wyhsillypig@163。 67 
…………………………………………………………Page 68……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
STDDEV 
这是最后一个统计函数 STDDEV 返回某一列数值的标准差 它的应用示例如下 
输入 
SQL》SELECT STDDEV HITS FROM TEAMSTATS 
输出 
STDDEV(HITS) 
28。336666 
同样 对字符型列应用该函数时会得到错误信息 
输入/输出 
SQL》SELECT STDDEV(NAME) FROM TEAMSTATS 
ERROR 
ORA…01722 invalid number 
no rows selected 
这些统计函数也可以在一个语句中同时使用 
输入/输出 
SQL》SELECT COUNT AB AVG(AB) MIN(AB) MAX(AB) STDDEV(AB) 
VARIANCE(AB) SUM(AB) FROM TEAMSTATS 
COUNT( AVG(A MIN(A MAX( STDDEV( VARIANCE SUM(A 
AB) B) B) AB) AB) (AB) B) 
6 119。167 1 187 75。589 5712。97 715 
当你下次见到比赛结果时 你应该知道了 SQL 正在它的后台工作 
日期/ 时间函数 
我们的生活是由日期和时间来掌握的 大多数的 SQL 解释器都提供了对它进行支持的 
函数 在这一部分我们使用 PROJECT 表来演求日期和时间函数的用法 
输入 
SQL》 SELECT * FROM PROJECT 
输出 
TASK STARTDATE ENDDATE 
EMAIL wyhsillypig@163。 68 
…………………………………………………………Page 69……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
KICKOFFMTG 01…APR…95 01…APR…95 
TECHSURVEY 02…APR…95 01…MAY…95 
USERMTGS 15…MAY…95 30…MAY…95 
DESIGNWIDGET 01…JUN…95 30…JUN…95 
CODEWIDGET 01…JUL…95 02…SEP…95 
TESTING 03…SEP…95 17…JAN…96 
注 这里的数据类型使用日期型 大多数 SQL 解释器都有日期型 但是在语法的细则 
上有不同之处 
ADD_MONTHS 
该函数的功能是将给定的日期增加一个月 举例来说 由于一些特殊的原因 上述的 
计划需要推迟两个月 那么可以用下面的方法来重新生成一个日程表 
输入 
SQL》SELECT TASK STARTDATE ENDDATE 
ORIGINAL_END ADD_MONTHS(ENDDATE;2) FROM PROJECT 
输出 
TASK STARTDATE ORIGINAL ADD_MONTH 
KICKOFFMTG 01…APR…95 01…APR…95 01…JUN…95 
TECHSURVEY 02…APR…95 01…MAY…95 01…JUL…95 
USERMTGS 15…MAY…95 30…MAY…95 30…JUL…95 
DESIGNWIDGET 01…JUN…95 30…JUN…95 31…AUG…95 
CODEWIDGET 01…JUL…95 02…SEP…95 02…NOV…95 
TESTING 03…SEP…95 17…JAN…96 17…MAR…96 
尽管这种延误不太可能发生 但是实现日程的变动却是非常容易的 ADD_MONTHS 
也可能工作在 SELECT 之外 试着输入 
输入 
SQL》SELECT TASK TASKS_SHORTER_THAN_ONE_MONTH 
FROM PROJECT WHERE ADD_MONTHS(STARTDATE 1) ENDDATE 
结果如下所示 
输出 
TASKS_SHORTER_THAN_ONE_MONTH 
EMAIL wyhsillypig@163。 69 
…………………………………………………………Page 70……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
KICKOFF MTG 
TECH SURVEY 
USER MTGS 
DESIGN WIDGET 
分析 
你将会发现这一部分中的几乎所有的函数都可能工作在不只一个地方 但是 如果没 
有 TO_CHAR 和 TO_DATE 函数的帮助 ADD_MONTH 就无法在字符或数字类型中工作 
这将在今天的晚些时候讨论 
LAST_DAY 
LAST_DAY 可以返回指定月份的最后一天 例如 如果你想知道在 ENDDATE 列中的 
给出日期中月份的最后一天是几号时 你可以输入 
输入 
SQL》SELECT ENDDATE LAST_DAY ENDDATE FROM PROJECT 
结果如下 
输出 
ENDDATE LAST_DAY(ENDDATE) 
01…APR…95 30…APR…95 
01…MAY…95 31…MAY…95 
30…MAY…95 31…MAY…95 
30…JUN…95 30…JUN…95 
02…SEP…95 30…SEP…95 
17…JAN…96 31…JAN…96 
如果是在闰年的最后一天呢 
输入/输出 
SQL》SELECT LAST_DAY( 1…FEB…95 ) NON_LEAP LAST_DAY(
小说推荐
返回首页返回目录