SQLÓï¾ä£ºGroup By Óï¾äС½á
1. Group By Óï¾ä¼ò½é£º
Group ByÓï¾ä´ÓÓ¢ÎĵÄ×ÖÃæÒâÒåÉÏÀí½â¾ÍÊÇ“¸ù¾Ý(by)Ò»¶¨µÄ¹æÔò½øÐзÖ×é(Group)”¡£ËüµÄ×÷ÓÃÊÇͨ¹ýÒ»¶¨µÄ¹æÔò½«Ò»¸öÊý¾Ý¼¯»®·Ö³ÉÈô¸É¸öСµÄÇøÓò£¬È»ºóÕë¶ÔÈô¸É¸öÐ¡ÇøÓò½øÐÐÊý¾Ý´¦Àí¡£
P.S. ÕâÀïÕæÊÇÌå»áµ½ÁËÒ»¸öºÃµÄÃüÃûµÄÁ¦Á¿£¬Group By´Ó×ÖÃæÊÇÖ±½ÓÈ¥Àí½âÊǷdz£ºÃÀí½âµÄ¡£¶÷£¬ÒÔºóÔÚÃüÃûµÄ»·½ÚÒ»¶¨Òª¼Ó°Ñ¾¢:)¡£»°Ìâ³¶Ô¶ÁË¡£
2. Group By µÄʹÓãº
ÉÏÃæÒѾ¸ø³öÁ˶ÔGroup ByÓï¾äµÄÀí½â¡£»ùÓÚÕâ¸öÀí½âºÍSQL Server 2000µÄÁª»ú°ïÖú£¬ÏÂÃæ¶ÔGroup ByÓï¾äµÄ¸÷ÖÖµäÐÍʹÓýøÐÐÒÀ´ÎÁоÙ˵Ã÷¡£
2.1 Group By [Expressions]:
Õâ¸ö¿ÖÅÂÊÇGroup ByÓï¾ä×î³£¼ûµÄÓ÷¨ÁË£¬Group By + [·Ö×é×Ö¶Î](¿ÉÒÔÓжà¸ö)¡£ÔÚÖ´ÐÐÁËÕâ¸ö²Ù×÷ÒÔºó£¬Êý¾Ý¼¯½«¸ù¾Ý·Ö×é×ֶεÄÖµ½«Ò»¸öÊý¾Ý¼¯»®·Ö³É¸÷¸ö²»Í¬µÄС×é¡£±ÈÈçÓÐÈçÏÂÊý¾Ý¼¯£¬ÆäÖÐË®¹ûÃû³Æ(FruitName)ºÍ³ö²ú¹ú¼Ò(ProductPlace)ΪÁªºÏÖ÷¼ü£º
FruitName ProductPlace Price
Apple China $1.1
Apple Japan $2.1
Apple USA $2.5
Orange China $0.8
Banana China $3.1
Peach USA $3.0
Èç¹ûÎÒÃÇÏëÖªµÀÿ¸ö¹ú¼ÒÓжàÉÙÖÖË®¹û£¬ÄÇôÎÒÃÇ¿ÉÒÔͨ¹ýÈçÏÂSQLÓï¾äÀ´Íê³É£º
SELECT COUNT(*) AS Ë®¹ûÖÖÀà, ProductPlace AS ³ö²ú¹ú
from T_TEST_FRUITINFO
GROUP BY ProductPlaceÕâ¸öSQLÓï¾ä¾ÍÊÇʹÓÃÁËGroup By + ·Ö×é×ֶεķ½Ê½£¬ÄÇôÕâ¾äSQLÓï¾ä¾Í¿ÉÒÔ½âÊͳɓÎÒ°´ÕÕ³ö²ú¹ú¼Ò(ProductPlace)½«Êý¾Ý¼¯½øÐзÖ×飬Ȼºó·Ö±ð°´ÕÕ¸÷¸ö×éÀ´Í³¼Æ¸÷×ԵļǼÊýÁ¿¡£”ºÜºÃÀí½â¶Ô°É¡£ÕâÀïÖµµÃ×¢ÒâµÄÊǽá¹û¼¯ÖÐÓÐÁ½¸ö·µ»Ø×ֶΣ¬Ò»¸öÊÇProductPlace(³ö²ú¹ú), Ò»¸öÊÇË®¹ûÖÖÀà¡£Èç¹ûÎÒÃÇÕâÀïË®¹ûÖÖÀ಻ÊÇÓÃCount(*)£¬¶øÊÇÀàËÆÈçÏÂд·¨µÄ»°£º
SELECT FruitName, ProductPlace from T_TEST_FRUITINFO GROUP BY ProductPlaceÄÇôSQLÔÚÖ´ÐдËÓï¾äµÄʱºò»á±¨ÈçϵÄÀàËÆ´íÎó£º
Ñ¡ÔñÁбíÖеÄÁÐ 'T_TEST_FRUITINFO.FruitName' ÎÞЧ£¬ÒòΪ¸ÃÁÐûÓаüº¬ÔھۺϺ¯Êý»ò GROUP BY ×Ó¾äÖС£Õâ¾ÍÊÇÎÒÃÇÐèҪעÒâµÄÒ»µã£¬Èç¹ûÔÚ·µ»Ø¼¯×Ö¶ÎÖУ¬ÕâЩ×Ö¶ÎҪô¾ÍÒª°üº¬ÔÚGroup ByÓï¾äµÄºóÃæ£¬×÷Ϊ·Ö×éµÄÒÀ¾Ý£»ÒªÃ´¾ÍÒª±»°üº¬ÔھۺϺ¯ÊýÖС£ÎÒÃÇ¿ÉÒÔ½«Group By²Ù×÷ÏëÏó³ÉÈçϵÄÒ»¸ö¹ý³Ì£¬Ê×ÏÈϵͳ¸ù¾ÝSELECT Óï¾äµÃµ½Ò»¸ö½á¹û¼¯£¬Èç×ʼµÄÄǸöË®¹û¡¢³ö²ú¹ú¼Ò¡¢µ¥¼ÛµÄÒ»¸öÏêϸ±í¡£È»ºó¸ù¾Ý·Ö×é×ֶΣ¬½«¾ßÓÐÏàͬ·Ö×é×ֶεļǼ¹
Ïà¹ØÎĵµ£º
---·µ»Ø±í´ïʽÖÐÖ¸¶¨×Ö·ûµÄ¿ªÊ¼Î»ÖÃ
select charindex('c','abcdefg',1)
---Á½¸ö×Ö·ûµÄÖµÖ®²î
select difference('bet','bit')
---×Ö·û×î×ó²àÖ¸¶¨ÊýÄ¿
select left('abcdef',3)
---·µ»Ø×Ö·ûÊý
select len('abcdefg')
--ת»»ÎªÐ¡×Ö·û
select lower('ABCDEFG')
--È¥×ó¿Õ¸ñºó
select ltrim(' &nbs ......
--Óï ¾ä ¹¦ ÄÜ
--Êý¾Ý²Ù×÷
SELECT --´ÓÊý¾Ý¿â±íÖмìË÷Êý¾ÝÐкÍÁÐ
INSERT --ÏòÊý¾Ý¿â±íÌí¼ÓÐÂÊý¾ÝÐÐ
DELETE --´ÓÊý¾Ý¿â±íÖÐɾ³ýÊý¾ÝÐÐ
UPDATE --¸üÐÂÊý¾Ý¿â±íÖеÄÊý¾Ý
--Êý¾Ý¶¨Òå
CREATE TABLE --´´½¨Ò»¸öÊý¾Ý¿â±í
DROP TABLE --´ÓÊý¾Ý¿âÖÐɾ³ý±í
ALTER TABLE --ÐÞ¸ÄÊý¾Ý¿â±í½á¹¹
CREATE VIEW --´´½¨Ò»¸öÊÓͼ
DRO ......
ÐÐÁÐת»»
create table test(id int,name varchar(20),quarter int,profile int)
insert into test values(1,'a',1,1000)
insert into test values(1,'a',2,2000)
insert into test values(1,'a',3,4000)
insert into test values(1,'a',4,5000)
insert into test values(2,'b',1,3000)
insert into test values(2, ......
¡¡UNIONÖ¸ÁîµÄÄ¿µÄÊǽ«Á½¸öSQLÓï¾äµÄ½á¹ûºÏ²¢ÆðÀ´¡£´ÓÕâ¸ö½Ç¶ÈÀ´¿´£¬ ÎÒÃÇ»á²úÉúÕâÑùµÄ¸Ð¾õ£¬UNION¸úJOINËÆºõÓÐЩÐíÀàËÆ£¬ÒòΪÕâÁ½¸öÖ¸Áî¶¼¿ÉÒÔÓɶà¸ö±í¸ñÖÐߢȡ×ÊÁÏ¡£ UNIONµÄÒ»¸öÏÞÖÆÊÇÁ½¸ö SQL Óï¾äËù²úÉúµÄÀ¸Î»ÐèÒªÊÇͬÑùµÄ×ÊÁÏÖÖÀà¡£ÁíÍ⣬µ±ÎÒÃÇÓà UNIONÕâ¸öÖ¸Áîʱ£¬ÎÒÃÇÖ»»á¿´µ½²»Í¬µÄ×ÊÁÏÖµ (ÀàËÆ SELECT DISTINCT) ......