SQLÖÐ groupbyºÍhavingµÄÇø±ð
½éÉÜGROUP BY ºÍ HAVING ×Ó¾äǰ£¬ÎÒÃDZØÐèÏȽ²½²sqlÓïÑÔÖÐÒ»ÖÖÌØÊâµÄº¯Êý:¾ÛºÏº¯Êý£¬ÀýÈçSUM, COUNT, MAX, AVGµÈ¡£ÕâЩº¯ÊýºÍÆäËüº¯ÊýµÄ¸ù±¾Çø±ð¾ÍÊÇËüÃÇÒ»°ã×÷ÓÃÔÚ¶àÌõ¼Ç¼ÉÏ¡£
SELECT SUM(population) from bbc
ÕâÀïµÄSUM×÷ÓÃÔÚËùÓзµ»Ø¼Ç¼µÄpopulation×Ö¶ÎÉÏ£¬½á¹û¾ÍÊǸòéѯֻ·µ»ØÒ»¸ö½á¹û£¬¼´ËùÓйú¼ÒµÄ×ÜÈË¿ÚÊý¡£
ͨ¹ýʹÓÃGROUP BY ×Ӿ䣬¿ÉÒÔÈÃSUM ºÍ COUNT ÕâЩº¯Êý¶ÔÊôÓÚÒ»×éµÄÊý¾ÝÆð×÷Óᣵ±ÄãÖ¸¶¨ GROUP BY region ʱ£¬ ÊôÓÚͬһ¸öregion(µØÇø)µÄÒ»×éÊý¾Ý½«Ö»ÄÜ·µ»ØÒ»ÐÐÖµ£¬Ò²¾ÍÊÇ˵£¬±íÖÐËùÓгýregion(µØÇø)ÍâµÄ×ֶΣ¬Ö»ÄÜͨ¹ý SUM, COUNTµÈ¾ÛºÏº¯ÊýÔËËãºó·µ»ØÒ»¸öÖµ¡£
HAVING×Ó¾ä¿ÉÒÔÈÃÎÒÃÇɸѡ³É×éºóµÄ¸÷×éÊý¾Ý£¬WHERE×Ó¾äÔÚ¾ÛºÏǰÏÈɸѡ¼Ç¼.Ò²¾ÍÊÇ˵×÷ÓÃÔÚGROUP BY ×Ó¾äºÍHAVING×Ó¾äǰ.
¶ø HAVING×Ó¾äÔھۺϺó¶Ô×é¼Ç¼½øÐÐɸѡ¡£
ÈÃÎÒÃÇ»¹ÊÇͨ¹ý¾ßÌåµÄʵÀýÀ´Àí½âGROUP BY ºÍ HAVING ×Ӿ䣬»¹²ÉÓõÚÈý½Ú½éÉܵÄbbc±í¡£
SQLʵÀý:
Ò»¡¢ÏÔʾÿ¸öµØÇøµÄ×ÜÈË¿ÚÊýºÍ×ÜÃæ»ý: SELECT region, SUM(population), SUM(area)
from bbc
GROUP BY region
ÏÈÒÔregion°Ñ·µ»Ø¼Ç¼·Ö³É¶à¸ö×飬Õâ¾ÍÊÇGROUP BYµÄ×ÖÃæº¬Òå¡£·ÖÍê×éºó£¬È»ºóÓþۺϺ¯Êý¶Ôÿ×éÖеIJ»Í¬×Ö¶Î(Ò»»ò¶àÌõ¼Ç¼)×÷ÔËËã¡£
¶þ¡¢ ÏÔʾÿ¸öµØÇøµÄ×ÜÈË¿ÚÊýºÍ×ÜÃæ»ý.½öÏÔʾÄÇÐ©Ãæ»ý³¬¹ý1000000µÄµØÇø¡£ SELECT region, SUM(population), SUM(area)
from bbc
GROUP BY region
HAVING SUM(area)>1000000
ÔÚÕâÀÎÒÃDz»ÄÜÓÃwhereÀ´É¸Ñ¡³¬¹ý1000000µÄµØÇø£¬ÒòΪ±íÖв»´æÔÚÕâÑùÒ»Ìõ¼Ç¼¡£
Ïà¹ØÎĵµ£º
ʹÓû·¾³£ºWinxp£¬Mssql 2000 ¸öÈ˰æ
¡¡¡¡1¡¢´ò¿ªÄãµÄ±¾µØMssqlÆóÒµ¹ÜÀíÆ÷£¬Õ¹¿ª¿ØÖÆÌ¨¸ùĿ¼¡¢Microsoft SQL Server¡¢SQL Server×顣ĬÈϰ²×°ºÃµÄMssql×éÖÐÖ»ÓÐÒ»¸öLocal£¨Windows NT£©¡£×¢Ò⣬ÔÚWin 2000ÖÐÏÔʾµÄÊDZ¾µØ¼ÆËã»úÃû¡£
¡¡¡¡2¡¢Êó±êÓÒ¼üSQL Server×飬ѡÔñн¨SQL Server×¢²áÃüÁµ¯³ö×¢²áÏòµ¼¡£
¡¡¡ ......
1, ʲôÊÇͳ¼ÆÐÅÏ¢
ÒÔÏÂÊǹٷ½µÄ¶Ôͳ¼ÆÐÅÏ¢µÄÃèÊö£º
°´ÕÕĬÈÏÉèÖã¬Èç¹û±íÖеÄijÁÐûÓÐË÷Òý£¬ÔòSQL Server»á×Ô¶¯Îª¸ÃÁд´½¨Í³¼Æ¡£È»ºó£¬²éѯÓÅ»¯Æ÷ÆÀ¹À¸ÃÁÐÖÐÊý¾Ý·Ö²¼·¶Î§µÄͳ¼ÆÐÅÏ¢£¬ÒÔÑ¡ÔñÒ»¸ö¸üΪÓÐЧµÄ²éѯ´¦Àí·½°¸¡£·Ö±æ×Ô¶¯´´½¨µÄͳ¼ÆºÜ¼òµ¥£¬ÔÚSQL Serve ......
´´½¨sqlÊý¾Ý¿â¸´ÖƵķ¢²¼¡¢¶©ÔĵÄÎÊÌâ´¦Àí[ת]
²Ù×÷ʹÓõÄһЩ¼¼ÇÉ(ÊÂÎñ¸´ÖÆÀàÐÍ):
1.ÈçºÎÐÞ¸ÄÒ»¸öÒѾ·¢²¼µÄ±íµÄÊôÐÔ?
½«·¢²¼ËùÓж©ÔÄɾ³ý,(·¢²¼²»ÓÃɾ³ý),¾Í¿ÉÒÔÔÚ·¢²¼ÊôÐÔµÄÏîÄ¿ÖÐÈ¡Ïû±í,È»ºó¾Í
¿ÉÒÔÐÞ¸ ......
---ÉϸöÔÂÔ³õµÚÒ»Ìì
select CONVERT(varchar(12) , DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0), 112 )
---ÉϸöÔÂÔÂÄ©×îºóÒ»Ìì
select CONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)), 112 )
1. ÏÔʾ±¾ÔµÚÒ»Ìì
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select co ......
±¾ÎÄ´ÓÊý¾Ý¿âÉè¼Æ¡¢¿ª·¢¡¢DBA¹ÜÀíµÈËĸö·½ÃæÐðÊöÁËSQL2005ÓëSQL2000Á½¸ö°æ±¾¼äµÄ¸Ä½ø¡£
¡¡¡¡Ò»¡¢Êý¾Ý¿âÉè¼Æ·½Ãæ
¡¡
¡¡1¡¢×Ö¶ÎÀàÐÍ¡£
¡¡¡¡varchar(max)
varchar(max)ÀàÐ͵ÄÒýÈë´ó´óµÄÌá¸ßÁ˱à³ÌµÄЧÂÊ£¬¿ÉÒÔʹÓÃ×Ö·û´®º¯Êý¶ÔCLOBÀàÐͽøÐвÙ×÷£¬ÕâÊÇÒ»¸öÁÁµã¡£µ«ÊÇÕâ¾ÍÒý·¢Á˶Ôvarchar
ºÍcharЧÂÊÌÖÂÛµÄÀÏÎÊÌâ¡£µ½µ ......