´ÓÕâÀïÏÂÔØÎļþemployees.txt£¬customers.txt£¬orders.txt
²Î¿¼ÎÄÕÂ:http://www.2cto.com/database/201105/91595.html
ʹÓÃpackageµ¼ÈëÊý¾Ý:http://www.2cto.com/database/201105/91597.html
¼òµ¥µÄ¾ÛºÏ
´Óorders±íÖÐÑ¡Ôñ¸÷¸öÄê·Ý¹²Óй²ÓжàÉÙ¿Í»§¶©¹ºÁËÉÌÆ·
- µÚÒ»ÖÖд·¨£¬ÎÒÃÇ¿ÉÒÔд³ÉÕâÑù
ҪעÒâµÄÊÇÈç¹û°Ñgroup by YEAR(o.orderdata)»»³Égroup by orderyear¾Í»á³ö´í£¬ÕâÀïÉæ¼°µ½sqlÓï¾äµÄÖ´ÐÐ˳ÐòÎÊÌ⣬ÓÐʱ¼äÔÙÁ˽âһϡ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1 select YEAR (o.orderdate) orderyear, COUNT ( distinct (custid)) numCusts
2 from Sales.Orders o
3 group by YEAR (o.orderdate)
4 go - µÚ¶þÖÖд·¨£¬
ÔÚfromÓï¾äÖÐÏȵõ½orderyear£¬È»ºóÔÙselectÓï¾äÖоͲ»»á³öÏÖûÓÐÕâ¸ö×ֶεĴíÎóÁË1 select orderyear, COUNT ( distinct (custid))numCusts
2 from ( select YEAR (orderdate) as orderyear,custid from sales.orders) as D
3 group by orderyear
4 go - µÚÈýÖÖд·¨£¬
ÔÚas DºóÃæ¼ÓÉÏÑ¡Ôñ³öµÄ×ֶΣ¬ÊDz»ÊǸü¼ÓµÄÇå³þÃ÷ÁËÄØ£¡1 select orderyear, COUNT ( distinct (custid)) numCusts
2 from ( select YEAR (orderdate),custid from sales.orders) as D(orderyear,custid)
3 group by orderyear
4 go - µÚËÄÖÖд·¨£¬with³ö³¡ÁË
with¿ÉÒÔʹÓï¾ä¸ü¼ÓµÄ¾´Õ£¬ÏÂÃæÊÇȨÍþ½âÊÍ¡£¡¡¡¡1 with c as (
2 select YEAR (orderdate) orderyear, custid from sales.orders)
3 select orderyear, COUNT ( distinct (custid)) numCusts from c group by orderyear
4 go
¡¡¡¡¡¡¡¡
Ö¸¶¨ÁÙʱÃüÃûµÄ½á¹û¼¯£¬ÕâЩ½á¹û¼¯³ÆÎª¹«Óñí±í´ïʽ (CTE)¡£¸Ã±í´ïʽԴ×Ô¼òµ¥²éѯ£¬²¢ÇÒÔÚµ¥Ìõ SELECT¡¢INSERT¡¢UPDATE¡¢MERGE »ò DELETE Óï¾äµÄÖ´Ðз¶Î§ÄÚ¶¨Òå¡£¸Ã×Ó¾äÒ²¿ÉÓÃÔÚ CREATE VIEW Óï¾äÖУ¬×÷Ϊ¸ÃÓï¾äµÄ SELECT ¶¨ÒåÓï¾äµÄÒ»²¿·Ö¡£¹«Óñí±í´ïʽ¿ÉÒÔ°üÀ¨¶Ô×ÔÉíµÄÒýÓá£ÕâÖÖ±í´ïʽ³ÆÎªµÝ¹é¹«Óñí´ïʽ¡£¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡----MSDN
- µÚÎåÖÖд·¨£¬Ò²¿ÉÒÔ½è¼øµÚÈýÖÖд·¨£¬ÕâÑùʹÓï¾ä¸ü¼ÓÇå³þÃ÷ÁË£¬±ãÓÚά»¤
1 with c(orderyear,custid) as (
2 select YEAR (orderdate),custid from sales.orders)
3 select orderyear, COUNT ( distinct (custid)) numCusts from c group by -
ÉÏÃæ5ÖÐд·¨¶¼µÃµ½ÏàͬµÄ½á¹û£¬ÈçÏÂͼ1£ºc.orderyear
4 go
ͼ1
Ìí¼Ó¼ÆËã
- ÏÖÔÚÒªÇóÒªÇó¼ÆËã³ö¶©µ¥±íÖÐÿÄê±ÈÉÏÒ»ÄêÔö¼ÓµÄ¿Í»§ÊýÄ¿£¬Õâ¸öÉÔ΢¸´ÔÓ
-
1 with
