ฟังก์ชันการรวม SQL – SUM, MIN, MAX, AVG, COUNT คำนวณโดยใช้ผลรวมของ SQL

โกลอฟนา / นลัชตูวันยา

Vchimosya pіdbivati ​​​​pіdbags เขาไม่ใช่ผลลัพธ์ของการคำนวณ SQL แต่เป็นกระเป๋าย่อยของค่าของตารางฐานข้อมูล ฟังก์ชัน SQL แบบรวมจะมีช่วงตามค่าจนถึงค่าผลลัพธ์เดียว ฟังก์ชันการรวม SQL SUM, MIN, MAX, AVG และ COUNT มักใช้บ่อยที่สุด มีความแตกต่างสองประการระหว่างฟังก์ชันการรวม ประการแรก: ฟังก์ชันรวมจะได้รับชัยชนะโดยกองกำลังอันทรงพลังและเปลี่ยนค่าผลลัพธ์หนึ่งค่า อื่นๆ: ฟังก์ชันการรวมจะจับคู่กับตัวดำเนินการ SQL GROUP BY นั่นคือการจัดกลุ่มตามฟิลด์ (ย่อมาจาก) เพื่อลบค่าผลลัพธ์ออกจากกลุ่มสกิน มาดูจุดเริ่มต้นของการแยกย่อยของฟังก์ชันการรวมโดยไม่จัดกลุ่มกัน

ฟังก์ชัน SQL SUM

ฟังก์ชัน SQL SUM จะหมุนผลรวมของค่าที่ขยายของตารางฐานข้อมูล วอห์นทำได้เพียง zastosovuvatisya จนถึงstovptsіv ความหมายของตัวเลขดังกล่าว การขอให้ SQL ดึงข้อมูล sumi ที่เป็นผลลัพธ์เริ่มต้นดังนี้:

เลือก SUM (IM'I_COLUMN) ...

หลังจากนั้น ให้ทำตาม FROM (IM'YA_TABLES) และหลังจากสร้าง WHERE เพิ่มเติมแล้ว คุณยังสามารถระบุความคิดได้ นอกจากนี้ยังสามารถเขียน DISTINCT ก่อนชื่อคอลัมน์ ซึ่งหมายความว่าจะป้องกันเฉพาะค่าที่ไม่ซ้ำเท่านั้น สำหรับการล็อคค่าทั้งหมดจะได้รับคืน (ซึ่งคุณสามารถระบุได้โดยเฉพาะไม่ใช่ DISTINCT แต่ทั้งหมด แต่คำว่า ALL ไม่มีผลผูกพัน)

หากคุณต้องการดาวน์โหลดลงในฐานข้อมูลของบทเรียนนี้บน MS SQL Server หากไม่ได้ติดตั้ง DBMS บนคอมพิวเตอร์ของคุณ คุณสามารถติดตั้งได้โดยทำตามคำแนะนำสำหรับคำขอนี้ .

เราทำงานกับฐานข้อมูลของบริษัท - Company1. สคริปต์สำหรับสร้างฐานข้อมูลqієї dannyh, її table และ danimi ตารางที่ถูกเผา - ที่ไฟล์สำหรับ cim ส่ง .

ตัวอย่างที่ 1Є ฐานข้อมูลของบริษัทที่มีข้อมูลเกี่ยวกับ її pіdrozdіliและsvіrobіtnikіv ตารางพนักงานยังมีข้อมูลเกี่ยวกับเงินเดือนของนายหน้าอีกด้วย การเลือกจากตารางอาจมีลักษณะดังนี้ (หากต้องการขยายรูปภาพ ให้คลิกปุ่มซ้ายของเมาส์):

ในการแก้ไขผลรวมของเงินเดือนส่วนเกิน เป็นไปได้ที่จะดำเนินการตามคำขอ (บน MS SQL Server - จากการออกแบบด้านหน้าของ USE company1;):

เลือก SUM (เงินเดือน) จากพนักงาน

Tsey ขอค่าเปลี่ยน 287664.63

และตอนนี้ . ทางด้านขวา เริ่มทำให้สิ่งต่างๆ ง่ายขึ้นแล้ว เข้าใกล้ความเงียบมากขึ้นซึ่งเป็นประโยชน์

ฟังก์ชัน SQL MIN

ฟังก์ชัน SQL MIN ยังใช้ค่าจำนวนหนึ่งเพื่อหมุนค่าเฉลี่ยต่ำสุดของค่า ฟังก์ชันนี้มีไวยากรณ์คล้ายกับฟังก์ชัน SUM

ตัวอย่างที่ 3ฐานข้อมูลคือตาราง - เหมือนกับในแอปพลิเคชัน 1

จำเป็นต้องค้นหาข้อมูลเกี่ยวกับค่าจ้างขั้นต่ำสำหรับ spіvrobіtnikіvvіddіl z หมายเลข 42 สำหรับผู้ที่เราเขียนคำขอล่วงหน้า (บน MS SQL Server - ด้วยการออกแบบด้านหน้า USE company1;):

มูลค่าที่ส่งคืนคือ 10,505.90

ฉันต่ออายุ สิทธิในการพอเพียง. สำหรับผู้ที่มีสิทธิ์ทำเช่นนั้น จำเป็นไม่เพียงแต่ตารางพนักงานเท่านั้น แต่ยังรวมถึงตารางองค์กรด้วย เพื่อล้างแค้นข้อมูลเกี่ยวกับการอัปเดตของบริษัท:


ตัวอย่างที่ 4ตาราง Org ถูกเพิ่มลงในตาราง Staff ซึ่งจะล้างข้อมูลการอัปเดตของบริษัท จำนวนขั้นต่ำของ Vivesti rokiv, opratsovanyh หนึ่ง spіvrobіtnikvіddіlі, rastashovanuyu ใกล้Bostonі

ฟังก์ชัน SQL MAX

ฟังก์ชัน SQL MAX ทำงานในลักษณะเดียวกัน ดังนั้นจะหยุดหากจำเป็นต้องตั้งค่าสูงสุดของค่าเฉลี่ยของระบบ

ตัวอย่างที่ 5

จำเป็นต้องค้นหาเงินเดือนสูงสุดของ spivrobitnik ในกรณีหมายเลข 42 ซึ่งเราเขียนคำขอล่วงหน้า (บน MS SQL Server - ด้วยการออกแบบด้านหน้า USE company1;):

อ่านค่า18352.80

มาชั่วโมง สิทธิในการพอเพียง.

ตัวอย่างที่ 6ฉันคุ้นเคยกับสองตาราง - พนักงานและองค์กร แนะนำชื่อค่าคอมมิชชั่นสูงสุดเพื่อให้คุณสามารถหมุนหนึ่งรอบจากผู้นำซึ่งเป็นของกลุ่มการชำระเงิน (ดิวิชั่น) ตะวันออก วิโคริสเตติ เข้าร่วม (สร้างตาราง) .

ฟังก์ชัน SQL AVG

อ้างถึงไวยากรณ์สำหรับคำอธิบายฟังก์ชันการส่งต่อว่าถูกต้องและคล้ายกับฟังก์ชัน SQL AVG ฟังก์ชันนี้จะหมุนค่าเฉลี่ยของค่าเฉลี่ยของการทะเลาะวิวาท

ตัวอย่างที่ 7ฐานข้อมูลคือตารางนั้น - เหมือนกับที่ก้นด้านหน้า

มาหาประสบการณ์การทำงานโดยเฉลี่ยของ spivrobitniks ของพนักงานที่มีหมายเลข 42 สำหรับผู้ที่เราเขียนคำขอที่ไม่เหมาะสม (บน MS SQL Server - ด้วยการออกแบบด้านหน้าของ USE company1;):

ผลลัพธ์จะเป็นค่า 6.33

ตัวอย่างที่ 8 Pratsiyuemo กับโต๊ะเดียว - พนักงาน ป้อนเงินเดือนเฉลี่ยของผู้ปฏิบัติงานที่มีประสบการณ์ตั้งแต่ 4 ถึง 6 ปี

ฟังก์ชัน SQL COUNT

ฟังก์ชัน SQL COUNT จะหมุนจำนวนระเบียนในตารางฐานข้อมูล หากคุณระบุ SELECT COUNT(IM_COLUMN) ... ในแบบสอบถาม ผลลัพธ์จะเป็นจำนวนระเบียนที่ไม่มีระเบียนยูเรเนียม ซึ่งมีค่า NULL (ไม่ได้กำหนด) หากคุณชนะเป็นอาร์กิวเมนต์ด้วย z และเริ่มถาม SELECT COUNT(*) ... ผลลัพธ์จะเป็นจำนวนของเรคคอร์ด (แถว) ทั้งหมดในตาราง

ตัวอย่างที่ 9ฐานข้อมูลคือตารางนั้น - เหมือนกับที่ก้นด้านหน้า

จำเป็นต้องค้นหาเกี่ยวกับจำนวนของ spivrobitniks ทั้งหมด วิธีหักค่าคอมมิชชั่น จำนวนคอลัมน์ซึ่งค่า Comm ไม่ใช่ NULL ในทางกลับกันจะมีมากขึ้น (ใน MS SQL Server - ด้วยโครงสร้างด้านหน้า USE company1;):

SELECT COUNT (Comm) จากเจ้าหน้าที่

ผลลัพธ์จะเป็นค่า 11

ก้น 10ฐานข้อมูลคือตารางนั้น - เหมือนกับที่ก้นด้านหน้า

หากจำเป็นต้องรับรู้จำนวนเร็กคอร์ดทั้งหมดในตารางก็จะถูกโหลดโดยอัตโนมัติเป็นอาร์กิวเมนต์ของฟังก์ชัน COUNT (บน MS SQL Server - ด้วยโครงสร้างด้านหน้า USE company1;):

SELECT COUNT (*) จากเจ้าหน้าที่

ผลลัพธ์จะเป็นค่า 17

ในการรุก สิทธิในการมีวิสัยทัศน์ที่เป็นอิสระมันเป็นสิ่งจำเป็นที่จะ vikoristovuvat pidzapit

ตัวอย่างที่ 11 Pratsiyuemo กับโต๊ะเดียว - พนักงาน Vivesti kіlkіst pratsіvnіv іvіddіlі planuvannya (ที่ราบ)

ฟังก์ชันรวมในครั้งเดียวจาก SQL GROUP BY (การจัดกลุ่ม)

ตอนนี้ มาดูฟังก์ชันการรวมพร้อมกันด้วยตัวดำเนินการ SQL GROUP BY ตัวดำเนินการ SQL GROUP BY ใช้เพื่อจัดกลุ่มค่าผลลัพธ์ของคอลัมน์ในตารางฐานข้อมูล บนเว็บไซต์ บทเรียน, การมอบหมายงานที่ผู้ปฏิบัติงาน .

Pratyuvatimemo พร้อมฐานข้อมูล "พอร์ทัล goloshen 1" สคริปต์สำหรับสร้างฐานข้อมูลของข้อมูล ตาราง และตารางการเบิร์นข้อมูล - ที่ไฟล์สำหรับคำขอ cim .

ก้น 12นอกจากนี้ ฐานข้อมูลของพอร์ทัลยังตกตะลึง วอห์นจะล้างแค้นตารางโฆษณาเพื่อล้างแค้นข้อมูลเกี่ยวกับการใส่ร้ายที่ยื่นสำหรับวันนี้ หมวด Category ใช้เพื่อล้างแค้นข้อมูลเกี่ยวกับหมวดหมู่อันยอดเยี่ยมของการใส่ร้าย (เช่น Nerukhomist) และหมวด Parts เป็นเรื่องเกี่ยวกับส่วนอื่นๆ ที่สามารถรวมเข้ากับหมวดหมู่ได้ (เช่น ส่วนของ Apartments และ Dachas เป็นส่วนหนึ่งของ Nerukhomist หมวดหมู่). หน่วย Stovpets เพื่อรวบรวมข้อมูลเกี่ยวกับจำนวนที่ทำให้มึนงง และ Stovpets Money - เกี่ยวกับเงินจำนวนหนึ่งซึ่งใช้ในการยื่นทำให้มึนงง

หมวดหมู่ส่วนหนึ่งหน่วยเงิน
ขนส่งรถยนต์110 17600
ความดื้อรั้นอพาร์ตเมนต์89 18690
ความดื้อรั้นกระท่อมฤดูร้อน57 11970
ขนส่งรถจักรยานยนต์131 20960
Budmaterialsdoshki68 7140
วิศวกรรมไฟฟ้าโทรทัศน์127 8255
วิศวกรรมไฟฟ้าตู้เย็น137 8905
BudmaterialsRegips112 11760
ดอซวิลล์หนังสือ96 6240
ความดื้อรั้นบูดินกิ47 9870
ดอซวิลล์ดนตรี117 7605
ดอซวิลล์เกม41 2665

ตัวดำเนินการ Vykoristovuyuchi SQL GROUP BY, ทราบผลรวมของเพนนี, otrimanih สำหรับการใส่ร้ายในหมวดหมู่สกิน เราเขียนคำขอที่ไม่เหมาะสม (บน MS SQL Server - จากโครงสร้างด้านหน้า USE adportal1;):

เลือกหมวดหมู่ SUM (เงิน) เป็นเงินจากกลุ่มโฆษณาตามประเภท

ก้น 13ฐานข้อมูลคือตัวตารางนั่นเอง ซึ่งอยู่ด้านหน้าก้น

ตัวดำเนินการที่ชั่วร้าย SQL GROUP BY, z'yasuvati, ในส่วนนี้ของหมวดสกิน, มีการยื่นอาเจียนจำนวนมากที่สุด เราเขียนคำขอที่ไม่เหมาะสม (บน MS SQL Server - จากโครงสร้างด้านหน้า USE adportal1;):

SELECT หมวดหมู่, บางส่วน, MAX (หน่วย) AS สูงสุดจากกลุ่มโฆษณา BY Category

ผลลัพธ์จะเป็นตาราง:

Subsumkovy และค่าส่วนบุคคลในตารางเดียวสามารถทำได้ เพื่อรวมผลลัพธ์ของการร้องขอความช่วยเหลือของผู้ดำเนินการยูเนี่ยน .

ฐานข้อมูลเชิงสัมพันธ์และภาษาSQL

มีการอธิบายการเลือกตัวดำเนินการเลขคณิตและการกำหนดหมายเลขของคอลัมน์ พิจารณาฟังก์ชันผลรวมย่อย (รวม) COUNT, SUM, AVG, MAX, MIN หวังว่าการใช้ตัวดำเนินการ GROUP BY จะถูกใช้สำหรับจัดกลุ่มคำขอเลือกข้อมูล มีการอธิบายการหยุดของข้อเสนอ HAVING

Pobudova นับทุ่งนา

ที่ด้านบนของ vapadka สำหรับพับ นับ (pokhіdny) สนามในรายการ SELECT ให้ระบุเวอร์ชันที่ถูกต้องของการย้าย SQL ที่การดำเนินการเลขคณิต tsikh vyslovlyuvannyah ให้บวก ดู คูณ และบวก รวมทั้งเรียกฟังก์ชันการย้าย SQL คุณสามารถระบุชื่อของตารางใดๆ (ฟิลด์) ของตารางสำหรับคำขอได้ แต่คุณยังสามารถเลือกชื่อของตารางสำหรับคำขอได้อีกด้วย ดังที่แสดงในรายการข้อเสนอ FROM สำหรับคำแนะนำ เมื่อได้รับแจ้งการพับvirazіvอาจต้องใช้ธนู

มาตรฐาน SQL ช่วยให้คุณสามารถระบุชื่อของคอลัมน์ในตารางผลลัพธ์ได้อย่างชัดเจน โดยเฉพาะอย่างยิ่ง AS clause

เลือก Commodity.Name, Commodity.Price, Favor.Quantity, Commodity.Price*Favor.Quantity AS Variant FROM Commodity INNER JOIN Favor on Commodity ตัวอย่างที่ 6.1 บริเวณ Rozrahunok zagalnoy vartosti kozhny ї

ตัวอย่าง 6.2เลือกรายชื่อบริษัทจากชื่อที่กำหนดและลูกค้ารายแรก

SELECT Company, Name+""+ Left(First Name,1)+"."+Left(By Father,1)+"."AS ПІБ จากลูกค้า ตัวอย่าง 6.2 การเพิ่มรายชื่อบริษัทจากชื่อและชื่อย่อของลูกค้าที่กำหนด

ตามคำร้องขอของ vikoristan มีการแนะนำฟังก์ชัน Left ซึ่งช่วยให้สามารถแสดงสัญลักษณ์แห่งความชั่วร้ายได้หนึ่งสัญลักษณ์ในการเปลี่ยนแปลงข้อความในโหมดนี้

ตัวอย่างที่ 6.3ตรวจสอบรายการสินค้าจากวันที่และเดือนที่ขาย

เลือก Item.Name, Year(Product.Date) AS Year, Month (Property.Date) AS เดือนจาก Item INNER JOIN Item ON Item.ItemID=Year.ProductID ตัวอย่างที่ 6.3 Otrimanya ไปที่รายการสินค้าจากวันที่ได้รับการแต่งตั้งและเดือนที่ขาย

ตามคำร้องขอของ vikoristan ฟังก์ชันปีและเดือนจะใช้เพื่อดูวันที่และเดือนของวันที่

ฟังก์ชั่นกระเป๋าหวาย

เพื่อขอความช่วยเหลือ ฟังก์ชั่น subbag (รวม)ภายในกรอบของแบบสอบถาม SQL คุณสามารถใช้ข้อมูลสถิติเฉพาะจำนวนหนึ่งเกี่ยวกับตัวคูณของค่าที่เลือกของชุดผลลัพธ์

Koristuvachevy พร้อมใช้งานและพื้นฐาน ฟังก์ชั่นกระเป๋าย่อย:

  • Count (Viraz) - แสดงจำนวนระเบียนในชุดผลลัพธ์ของแบบสอบถาม SQL
  • ต่ำสุด/สูงสุด (Viraz) - กำหนดค่าต่ำสุดและไม่มีตัวตนมากที่สุดให้กับฟิลด์ปัจจุบัน
  • Avg (viraz) - ฟังก์ชันนี้ช่วยให้คุณแยกย่อยค่ากลางของค่าที่ไม่ระบุตัวตนที่บันทึกไว้ในฟิลด์แรกของเรคคอร์ดที่เลือก Vono єค่าเฉลี่ยเลขคณิต tobto ผลรวมของมูลค่า ส่วนย่อยของปริมาณ
  • ผลรวม (Viraz) - คำนวณผลรวมของค่าที่ไม่ระบุตัวตน ซึ่งเท่ากับจำนวนรายการที่เลือกสำหรับฟิลด์แรก

บ่อยครั้งที่ชื่อของนักบุญออกมาเหมือนวิราซ Viraz สามารถนับได้ตามค่าตาราง

ฟังก์ชันทั้งหมดเหล่านี้ทำงานด้วยค่าในคอลัมน์เดียวของตาราง หรือด้วยมุมมองทางคณิตศาสตร์และหมุนค่าเดียว ฟังก์ชัน COUNT , MIN และ MAX จะหยุดทั้งก่อนฟิลด์ตัวเลข และก่อนฟิลด์ที่ไม่ใช่ตัวเลข ในขณะที่ฟังก์ชัน SUM และ AVG สามารถชนะได้เฉพาะในฟิลด์ตัวเลขที่แตกต่างกัน โดยมี COUNT(*) เพียงเล็กน้อย เมื่อคำนวณผลลัพธ์ของฟังก์ชันใด ๆ ค่าว่างทั้งหมดจะรวมอยู่ในรายการหากจำเป็นต้องหยุดการดำเนินการเฉพาะค่าที่ระบุซึ่งจะถูกละไว้ ตัวเลือก COUNT(*) คือรูปแบบพิเศษของฟังก์ชัน COUNT ซึ่งทุกแถวในตารางผลลัพธ์จะรู้จัก แยกอิสระจากกัน เพื่อว่างเปล่าที่นั่น โดยจะทำซ้ำค่าอื่นๆ หรือไม่

หากคุณต้องการรวมค่าที่ซ้ำกันก่อนที่จะลบฟังก์ชันเฉพาะ ให้ใส่คำสำคัญ DISTINCT ก่อนชื่อของฟังก์ชันเฉพาะ อาจไม่สมเหตุสมผลสำหรับฟังก์ชัน MIN และ MAX โปรตีนอาจได้รับผลกระทบจากผลของฟังก์ชัน SUM และ AVG และจำเป็นต้องปรับให้อ่อนลงอีก เนื่องจากอาจมีอยู่ในสภาพผิวที่เฉพาะเจาะจง นอกจากนี้ คีย์เวิร์ด DISTINCT สามารถระบุได้ในคำขอใดๆ ไม่เกินหนึ่งครั้งเท่านั้น

ที่สำคัญกว่านั้นคือต้องสังเกตว่า ฟังก์ชั่นกระเป๋าย่อยคุณสามารถชนะมากกว่าสำหรับรายการข้อเสนอ SELECT มากกว่าสำหรับคลังข้อเสนอ HAVING ในสถานการณ์อื่น ๆ เป็นที่ยอมรับไม่ได้ เช่นเดียวกับรายการข้อเสนอ SELECT ฟังก์ชั่นกระเป๋าย่อยและข้อความจะรวมวลีรายวัน GROUP BY ซึ่งทำให้การจัดกลุ่มของกลุ่มเหล่านี้ เป็นไปไม่ได้ที่จะรวมจากองค์ประกอบในรายการข้อเสนอ SELECT ฟังก์ชั่นกระเป๋า.

ตัวอย่าง 6.4กำหนดตัวอักษรสำหรับชื่อผลิตภัณฑ์

SELECT Min(ชื่อทางการค้า) AS Min_Name จาก Product ตัวอย่าง 6.4 ตั้งชื่อสินค้าตามตัวอักษร

ตัวอย่าง 6.5กำหนดจำนวนของความโปรดปราน

SELECT Count(*) AS จำนวนที่ดินจาก Count ตัวอย่าง 6.5 กำหนดจำนวนของความโปรดปราน

ตัวอย่าง 6.6คำนวณ sumarnu kіlkіstของสินค้าที่ขาย

SELECT ผลรวม (สถานที่ ปริมาณ) AS ปริมาณ_ผลิตภัณฑ์ จาก คู่ ตัวอย่าง 6.6 การนัดหมายของsumarnoїkіlkostіของสินค้าที่ขาย

ตัวอย่าง 6.7คำนวณราคาเฉลี่ยของสินค้าที่ขาย

เลือก Avg(Item.Price) AS Avg_Price จาก Item INNER JOIN Item ON Item.ItemId=Product.ItemId; ตัวอย่าง 6.7 การกำหนดราคาเฉลี่ยของสินค้าที่ขาย

เลือก Sum(Item.Price*Perfect.Quantity) AS Variety from Item INNER JOIN Item ON Item.ItemId=Perfect.ItemId ตัวอย่าง 6.8. Pіdrakhunok vartosti ขายสินค้า

ข้อเสนอ GROUP BY

บ่อยครั้งตามคำขอจำเป็นต้องสร้างกระเป๋ากลางซึ่งฟังดูเหมือนวลี "ผิวหนัง ... " ซึ่งข้อเสนอ GROUP BY ชนะในคำสั่ง SELECT คำขอ ในกรณีของ GROUP BY เรียกว่าคำขอกลุ่ม ชาร์ดจะถูกจัดกลุ่มในข้อมูล นำออกไปอันเป็นผลมาจากการดำเนินการ SELECT หลังจากนั้นกลุ่มสกินจะถูกสร้างเป็นแถวผลรวมเดียว มาตรฐาน SQL แนะนำว่าส่วนคำสั่ง SELECT และคำสั่งย่อย GROUP BY ควรสัมพันธ์กันอย่างใกล้ชิด สำหรับการแสดงตนในคำสั่ง SELECT ของ GROUP BY clause องค์ประกอบสกินของรายการในส่วนคำสั่ง SELECT จะรับผิดชอบค่าเดียวสำหรับทั้งกลุ่ม นอกจากนี้ ข้อเสนอ SELECT สามารถรวมองค์ประกอบประเภทต่อไปนี้เท่านั้น: ชื่อฟิลด์ ฟังก์ชั่นกระเป๋าย่อย, ค่าคงที่ virazi ที่รวมองค์ประกอบที่ถูกแทนที่ รวมกัน

ชื่อฟิลด์ทั้งหมดที่ใส่ในรายการข้อเสนอ SELECT จะต้องอยู่ในวลี GROUP BY - เพื่อขยิบตาหากพวกเขาได้รับชัยชนะ ฟังก์ชั่นถุงย่อย. กฎย้อนกลับไม่ยุติธรรม - วลี GROUP BY สามารถมีชื่อคอลัมน์ได้ ซึ่งเหมือนกับรายการข้อเสนอ SELECT

เช่นเคย GROUP BY ชนะข้อเสนอ WHERE จะกลายเป็นข้อแรก และการจัดกลุ่มตามแถวเหล่านี้ ราวกับว่าพวกเขาทำให้จิตใจพอใจด้วยเรื่องตลก

มาตรฐาน SQL กำหนดว่าหลังจากจัดกลุ่มค่ารายวันทั้งหมดจะถือว่าเท่ากัน หากตารางสองแถวในคอลัมน์ที่จัดกลุ่มเดียวกันมีค่า NULL และค่าที่เหมือนกันในคอลัมน์การจัดกลุ่มอื่นที่ไม่ว่างเปล่าทั้งหมด จะถูกจัดวางในกลุ่มเดียวกัน

ตัวอย่างที่ 6.9คำนวณยอดรวมเฉลี่ยของการซื้อโดยผู้ซื้อเครื่องหนัง

เลือก Client.Privacy, Avg(Area.Amount) AS Average_Amount จาก Client INNER JOIN Client บน Client.ClientCode=Avg.ClientId GROUP BY Client.About ตัวอย่างที่ 6.9 การคำนวณภาระผูกพันโดยเฉลี่ยของการซื้อโดยผู้ซื้อสกิน

วลี "ผู้ซื้อผิว" พบนิพจน์ในแอปพลิเคชัน SQL ในการดูข้อเสนอ จัดกลุ่มตาม Client.Prizvische.

ตัวอย่าง 6.10ที่สำคัญ จามรี ซูมู บูโล ขายสินค้าชื่อหนัง

เลือก Item.Name, Sum(Item.Price*Product.Quantity) AS Variety from Item INNER JOIN Item ON Item.ItemID=Product.ItemID GROUP BY Item.Name ตัวอย่าง 6.10 แต่งตั้งจามรีบูโลขายสินค้าชื่อหนัง

เลือก Client.Company, Count(Party.PartyCode) AS Count_Parts จาก Client INNER JOIN Privilege บน Client.ClientCode=Party.ClientID GROUP BY Client.Company ตัวอย่าง 6.11 Pіdrahunokkіlkostі ugod, zdіysnenihผิวเต่งตึง

เลือก Customer.Company, Sum(Customer.Quantity) AS Global_Quality, Sum(Item.Price*City.Quantity) AS Variant FROM Commodity INNER JOIN (Customer INNER JOIN Customer on Customer.CustomerCode=Access.CustomerCode.Code) G. Firm ตัวอย่าง 6.12 Pіdrahunok zagalnoїkіlkostіซื้อหนังїfіrmiสินค้าตาїїvartostі

ตัวอย่าง 6.13คำนวณซูมาร์นูวาร์ทิสต์ของผลิตภัณฑ์เครื่องหนังเป็นเวลาหนึ่งเดือน

เลือก Item.Name, Month(Property.Date) AS Month, Sum(Product.Price*Property.Quantity) AS Variety FROM Item INNER JOIN Item ON Item.ProductID=Property.ProductID GROUP BY Item.Name, เดือน (Property.Date ) ) ) ตัวอย่าง 6.13 การแต่งตั้งsumarnoїvartostіของสินค้าเครื่องหนังคือเครื่องหนังmіsyats

ตัวอย่าง 6.14ชื่นชมสินค้าเครื่องหนังของ ґatunka ตัวแรกสำหรับเครื่องหนังmіsyats

เลือก Item.Name, Month(Product.Date) AS Month, Sum(Product.Price*Property. Quantity) AS Variety from Item INNER JOIN Item on Item. . ชื่อเดือน (สุข. วันที่) ตัวอย่าง 6.14 การแต่งตั้งsumarnoї vartostіของสินค้าเครื่องหนังของ ґatunku แรกสำหรับเครื่องหนังmіsyats

ข้อเสนอ HAVING

สำหรับความช่วยเหลือของ HAVING บล็อกข้อมูลทั้งหมดจะแสดงต่อหน้าความช่วยเหลือของ GROUP BY ซึ่งทำให้จิตใจของ HAVING พอใจ Tse dodatkova mozhlivist "profiltruvati" vihіdniynabіr

ซักผ้า มี Vіdrіznyayutsya กับ zіdที่ไหน :

  • HAVING แยกออกจากชุดผลลัพธ์ของกลุ่มข้อมูลจากผลลัพธ์ของค่าการรวม
  • WHERE รวมการรวมค่ารวมสำหรับการจัดกลุ่มเรกคอร์ดที่ไม่เป็นไปตามใจ
  • สำหรับความคิดของเรื่องตลกที่คุณไม่สามารถตั้งค่าฟังก์ชันรวม

ตัวอย่าง 6.15บริษัทที่กำหนด ในบางแห่ง จำนวนความช่วยเหลือมีมากกว่าสามบริษัท

เลือก Client.Company, Count(Area.Quantity) AS Number of_Areas FROM Customer INNER JOIN Facility ON Customer.CustomerCode=Accommodation.CustomerCode GROUP BY Customer.Company HAVING Count(Access.Amount)>3 ตัวอย่าง 6.15 การแต่งตั้ง บริษัท yakі mayut zagalnu kіlkіstโปรดปรานมากกว่าสามคน

ตัวอย่าง 6.16ป้อนรายการสินค้าที่ขายรวมกว่า 10,000 kr

เลือก Product.Name, Sum(Item.Price*Access.Quality) AS Variity FROM Product INNER JOINอำนวยความสะดวกบน Product.Item.Code=Access.ItemId GROUP BY Product.Name HAVING Sum(Item.Price*Access.Quality)>1000 ตัวอย่าง 6.16 Visnovok โอนสินค้าขายที่ยอดรวมกว่า 10,000 krb.

ตัวอย่าง 6.17ป้อนรายการสินค้าที่ขายในราคาขายปลีกกว่า 10,000 โดยไม่มียอดรวม

เลือก Product.Name จาก Product INNER JOIN Favor ON Product.ProductCode=Product.ProductID GROUP BY Product.Name HAVING Sum(Product.Price*Favor.Quantity)>10000 ตัวอย่าง 6.17 การดูรายการสินค้าที่ขายได้เป็นเงินมากกว่า 10,000 โดยไม่มีผลรวม

สำหรับหัวหน้าผู้ช่วยของคุณ คุณรู้วิธีที่จะชนะ ฟังก์ชัน SUMใน SQL Server (Transact-SQL) พร้อมไวยากรณ์และแอปพลิเคชัน

คำอธิบาย

ใน SQL Server (Transact-SQL) ฟังก์ชัน SUMเปลี่ยนความหมายทั้งหมดของ virazu

ไวยากรณ์

ไวยากรณ์สำหรับฟังก์ชัน SUM ใน SQL Server (Transact-SQL) คือ:

ไวยากรณ์ ABO ของฟังก์ชัน SUM เมื่อจัดกลุ่มผลลัพธ์สำหรับขั้นตอนหนึ่งหรือหลายขั้นตอน:

พารามิเตอร์ไคอาร์กิวเมนต์

expression1 , expression2 , … expression_n ไม่ถูกรวมไว้ก่อนฟังก์ชัน SUM แต่จะรวมไว้ก่อนตัวดำเนินการ GROUP BY ที่ส่วนท้ายของโจทย์ SQL
aggregate_expression - ce stovpets หรือ viraz ซึ่งจะถูกสรุป
ตาราง - ตารางซึ่งจำเป็นต้องบันทึก มีการตำหนิอย่างน้อยหนึ่งตาราง มันถูกเรียกคืนในคำสั่ง FROM
WHERE เงื่อนไข - ไม่หนืด. Tse wash วิธีปฏิบัติตามบันทึกที่เลือก

ศาสโตสุวรรณยา

ฟังก์ชัน SUM อาจถูกนำเสนอในเวอร์ชันต่อๆ ไปของ SQL Server (Transact-SQL):
SQL Server vNext, SQL Server 2016, SQL Server 2015, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005

ตัวอย่างจากหนึ่งฟิลด์

มาดูวิธีการใช้ฟังก์ชัน SUM ของ SQL Server เพื่อทำความเข้าใจวิธีใช้ฟังก์ชัน SUM ใน SQL Server (Transact-SQL)

ตัวอย่างเช่น คุณสามารถค้นหาว่าจำนวนผลิตภัณฑ์ทั้งหมดเป็นอย่างไร โดยมีจำนวนมากกว่า 10 รายการ

สำหรับแอปพลิเคชันของฟังก์ชัน SUM และ SUM (ปริมาณ) ไวรัส ให้ใส่นามแฝงว่า "ปริมาณทั้งหมด" เมื่อชุดผลลัพธ์ถูกหมุน “จำนวนทั้งหมด” จะปรากฏเป็นชื่อฟิลด์

ปืน DISTINCT

คุณสามารถบิดคำสั่ง DISTINCT ของฟังก์ชัน SUM ได้ ตัวอย่างเช่น การวางเมาส์ไว้ใต้คำสั่ง SQL จะเปลี่ยนยอดเงินเดือนทั้งหมดด้วยค่าเงินเดือนที่ไม่ซ้ำกัน ทำให้เงินเดือนต่ำกว่า $29,000 ต่อบัญชี

Yakby สองเงินเดือนกลายเป็น 24,000 ดอลลาร์ ในทางกลับกัน ฟังก์ชัน SUM ชนะเพียงหนึ่งค่าเหล่านี้

ก้นสูตร vikoristanny

Viraz ซึ่งตั้งอยู่ใกล้กับฟังก์ชัน SUM ไม่สามารถผูกด้วยฟิลด์เดียวได้ คุณยังสามารถปรับแต่งสูตรได้อีกด้วย ตัวอย่างเช่น คุณสามารถชำระค่าคอมมิชชั่นร่วมกันได้

ทำธุรกรรมSQL

SELECT SUM(ยอดขาย * 0.03) เป็น "ค่าคอมมิชชั่นทั้งหมด" จากคำสั่งซื้อ;

เลือก SUM (ยอดขาย * 0.03) เป็น "ค่าคอมมิชชั่นทั้งหมด"

จากคำสั่ง;

Vico หุ้นก้น GROUP BY

ในบางกรณี จำเป็นต้องชนะตัวดำเนินการ GROUP BY ด้วยฟังก์ชัน SUM

ฟังก์ชัน SUM ในภาพยนตร์ SQL โดยไม่คำนึงถึงความเรียบง่ายมักเป็นเรื่องยากเมื่อทำงานกับฐานข้อมูล Z їїเพื่อช่วยให้คุณใช้ผลลัพธ์ระดับกลางหรือระดับกลางด้วยตนเอง โดยไม่ต้องใช้เครื่องมือเพิ่มเติมของ DBMS

ไวยากรณ์ฟังก์ชัน

สำหรับ SQL ส่วนใหญ่ ไวยากรณ์ของผลรวมจะเหมือนกัน - เป็นอาร์กิวเมนต์ เฉพาะชื่อของฟิลด์ที่เป็นเลขคณิต หรือจำนวนเป็นเลขคณิต ซึ่งจำเป็นต้องทำการสรุป

ใน vinyatkovyh vipadkah เป็นไปได้ที่จะถ่ายทอดความหมายเฉพาะในสายตาของจำนวนการเปลี่ยนแปลง การต่อต้าน "แบบแผน" ที่คล้ายคลึงกันนั้นแทบจะไม่ใช่ vikoristovuyutsya เนื่องจากพวกเขาไม่ได้มีคุณค่าในตัวเองมากนัก ด้านล่างนี้เป็นไวยากรณ์ของฟังก์ชันใน SQL ของฉัน:

ผลรวม (a) - ที่นี่เป็นพารามิเตอร์

Varto ระบุว่าสามารถแทรกคำหลักก่อนพารามิเตอร์เช่น DISTINCT หรือ ALL ดังนั้นจะใช้เฉพาะค่าที่ไม่ซ้ำหรือทั้งหมดเท่านั้น

SUM แฮ็คก้นในSQL

เพื่อความเข้าใจในหลักการทำงานและหน้าที่ที่ยังหลงเหลืออยู่ เราควรดูการประพรมการใช้งาน SQL SUM สามารถย้อนกลับได้เมื่อมีการหมุนผลลัพธ์ ดังนั้นในบทบาทของค่ากลาง เช่น การตรวจสอบจิตใจอีกครั้ง

เป็นครั้งแรกที่เราสามารถดูตัวเลือกได้ หากจำเป็นต้องเปลี่ยนยอดขายของผลิตภัณฑ์เครื่องหนัง vrahovyuchi เพื่อให้สามารถคูณจำนวนการซื้อได้ เพื่อ otrimannya ผลลัพธ์ก็เพียงพอแล้ว คำร้องขอที่น่ารังเกียจของ vikonati:

SELECT รายการ, ผลรวม (จำนวนเงินที่ซื้อ) จากการขาย GroupBy รายการ;

ขึ้นอยู่กับทีมนั้นๆ จะมีรายการสินค้าที่ไม่ซ้ำกันพร้อมยอดรวมของการซื้อผลิตภัณฑ์สกิน

สำหรับอีกก้นหนึ่ง จำเป็นต้องจดรายการสินค้า จำนวนการขายที่เกินมูลค่าการหักเงิน ตัวอย่างเช่น 100 คุณสามารถนำผลลัพธ์ของงานนี้ใน dek_lcoma ด้วยวิธีที่เหมาะสมที่สุด ทั้งหมด:

SELECT Product FROM (เลือกสินค้า, sum(BuyAmount) เป็น Sum FROM Sale) โดยที่ Sum > 100.

คุณรู้จักจำนวนรุ่นพีซีที่คู่ของคุณออกจำหน่ายได้อย่างไร? วิธีคำนวณค่าเฉลี่ยในคอมพิวเตอร์ คุณจะพบลักษณะทางเทคนิคเดียวกันได้อย่างไร บนพื้นฐานของตัวเลขและโภชนาการอื่น ๆ ที่เกี่ยวข้องกับข้อมูลทางสถิติที่แท้จริง คุณสามารถรับคำแนะนำเพื่อขอความช่วยเหลือได้ ฟังก์ชั่น subbag (รวม). มาตรฐานถ่ายโอนฟังก์ชันการรวมต่อไปนี้:

ฟังก์ชันทั้งหมดหมุนค่าเดียวกัน ด้วยฟังก์ชันใด COUNT, MINі MAX zastosovnіก่อนข้อมูลประเภทใด ๆ ในขณะนั้น SUMі AVG vikoristovuyutsya น้อยกว่าสำหรับฟิลด์ตัวเลข ตกค้างระหว่างฟังก์ชัน นับ(*)і นับ(<имя поля>) ฉันเชื่อว่าเพื่อนที่อยู่เบื้องหลังคนขี้โกงจะไม่ละทิ้งค่า NULL

ก้น ค้นหาราคาต่ำสุดและสูงสุดสำหรับคอมพิวเตอร์ส่วนบุคคล:

ก้น ค้นหาจำนวนคอมพิวเตอร์จริงที่ออกโดยอาลักษณ์ A:

ก้น เราจะทราบได้อย่างไรว่าจำนวนรุ่นต่างๆ ซึ่งระบุโดยประเภท A สามารถกำหนดเป็นลำดับเชิงรุกได้ (ตามข้อเท็จจริงนี้ รูปแบบสกินจะถูกบันทึกไว้ในตารางผลิตภัณฑ์ครั้งเดียว):

ก้น ค้นหาจำนวนรุ่นต่างๆ ในปัจจุบันที่อนุญาตโดยเครื่องมือการเลือก A ตัวเลขจะใกล้เคียงกับตัวเลขที่อยู่ด้านหน้า ซึ่งในกรณีนี้จำเป็นต้องระบุจำนวนรุ่นทั้งหมดที่ได้รับอนุญาตโดยเครื่องมือการเลือก A จำเป็นต้องทราบจำนวนรุ่นต่างๆ ในตารางพีซีด้วย (มีจำหน่าย)

เพื่อให้การเลือกตัวบ่งชี้ทางสถิติชนะเฉพาะค่าที่ไม่ซ้ำกัน อาร์กิวเมนต์ฟังก์ชันรวมคุณสามารถชนะ พารามิเตอร์ DISTINCT. ที่สอง พารามิเตอร์ALL vikoristovuєtsyaสำหรับ umovchannyam และถ่ายทอดความโง่เขลาของความหมายทั้งหมดที่ปรากฎในคอลัมน์ ผู้ประกอบการ

เราต้องคำนึงถึงจำนวนรุ่นของพีซีอย่างไร viroblenih ผิว virobnik แล้วจำเป็นต้อง vikoristovuvat ข้อเสนอ GROUP BY, ไม่เหมาะสมทางวากยสัมพันธ์ ข้อเสนอ WHERE.

ข้อเสนอ GROUP BY

ข้อเสนอ GROUP BY vikoristovuetsya vyznachennya กลุ่มของแถวvihіdnyซึ่งสามารถ zastosovuvatisya ฟังก์ชันรวม (COUNT, MIN, MAX, AVG และ SUM). เป็นข้อเสนอของวันนี้และฟังก์ชั่นรวมแห่งชัยชนะทุกขั้นตอนพร้อมชื่อเดาใน เลือกเนื่องจากการรวมอยู่ใน ฟังก์ชั่นรวมและฟังก์ชันจะ zastosovuvatysya ก่อนแถวทั้งชุด ราวกับว่าตรงกับภาคแสดงของคำขอ ในอีกทางหนึ่ง ทุกคอลัมน์ของรายการ SELECT ไม่ได้เข้าในฟังก์ชันรวมมีกำหนดจะระบุ ที่ข้อเสนอ GROUP BY. ด้วยเหตุนี้แถวทั้งหมดจึงถูกแบ่งออกเป็นกลุ่มซึ่งมีลักษณะเฉพาะด้วยค่าผสมเดียวกันในคอลัมน์เหล่านี้ จากนั้นไปยังกลุ่มสกิน ฟังก์ชันการรวมจะถูกบล็อก โปรดทราบว่าใน GROUP BY ค่า NULL ทั้งหมดจะถือว่าเท่ากับ เมื่อจัดกลุ่มฟิลด์ซึ่งควรมีค่า NULL แถวดังกล่าวทั้งหมดจะอยู่ในกลุ่มเดียวกัน
ยักโช สำหรับข้อเสนอที่ชัดเจน GROUP BY, ในคำสั่ง SELECT ฟังก์ชั่นรวมรายวันจากนั้นเพียงแค่หมุนหนึ่งแถวจากกลุ่มสกิน ความเป็นไปได้นี้ ลำดับจากคีย์เวิร์ด DISTINCT สามารถเลือกได้ เพื่อแยกแถวที่ซ้ำกันออกจากชุดผลลัพธ์
ลองดูตัวอย่างง่ายๆ:
SELECT รุ่น COUNT(รุ่น) AS Qty_model AVG(ราคา) AS Avg_price
จากพีซี
จัดกลุ่มตามรุ่น;

คำขอสำหรับรุ่นสกินของพีซีนั้นระบุปริมาณและคุณภาพโดยเฉลี่ย แถวที่มีค่ารุ่นเดียวกัน (หมายเลขรุ่น) จะเข้าเกณฑ์กลุ่ม และจำนวนค่าและค่าเฉลี่ยสำหรับกลุ่มสกินจะคำนวณจากเอาต์พุต SELECT ผลลัพธ์ของการพิมพ์จะมาพร้อมกับตาราง:
แบบอย่าง Qty_model Avg_price
1121 3 850.0
1232 4 425.0
1233 3 843.33333333333337
1260 1 350.0

Yakby ที่ SELECT literal stovpets z date เป็นไปได้ที่จะนับจำนวนตัวบ่งชี้ของวันที่ผิวเฉพาะ ซึ่งจำเป็นต้องเพิ่มวันที่เป็นการจัดกลุ่ม และแม้กระทั่งฟังก์ชันการรวมก็ถูกคำนวณสำหรับค่าการรวมกันของสกิน (วันที่รุ่น)

Іsnuє sprat ของนักร้อง กฎสำหรับฟังก์ชั่นการรวมชัยชนะ:

  • ผลที่ตามมา ไม่ติดแถวเดียวกัน(หรือหนึ่งแถวสำหรับกลุ่มกลุ่ม) จากนั้นข้อมูลผลลัพธ์สำหรับการคำนวณ ไม่ว่าจะเป็นจากฟังก์ชันรวมต่อวัน ในกรณีนี้ ผลลัพธ์ของฟังก์ชัน COUNT ที่เลือกจะเป็นศูนย์ และผลลัพธ์ของฟังก์ชันอื่นๆ ทั้งหมดจะเป็น NULL
  • การโต้แย้งฟังก์ชั่นรวม คุณไม่สามารถกำหนดฟังก์ชันรวมได้ด้วยตัวเอง(ฟังก์ชันภายในฟังก์ชัน) ทูบโต เป็นไปไม่ได้ที่จะบรรลุค่าเฉลี่ยสูงสุดในเครื่องดื่มหนึ่งแก้ว
  • ผลลัพธ์ของฟังก์ชันการพิมพ์ COUNT є จำนวนทั้งหมด(INTEGER) ฟังก์ชันการรวมอื่นๆ จะลดประเภทของข้อมูลที่กำลังประมวลผล
  • ในทำนองเดียวกันเมื่อชนะฟังก์ชัน SUM ผลลัพธ์จะถูกลบซึ่งเปลี่ยนค่าสูงสุดของประเภทข้อมูลซึ่งชนะกล่าวโทษ ขอโทษ.

พ่อขอร้องอย่าแก้แค้น ข้อเสนอ GROUP BY, แล้ว ฟังก์ชั่นรวม, รวมอยู่ใน เลือกข้อเสนอ; วิธีการขอแก้แค้น ข้อเสนอ GROUP BY, แถวพิมพ์สกินซึ่งอาจมีค่าเท่ากันของคอลัมน์หรือกลุ่มของคอลัมน์, งานสำหรับ ข้อเสนอ GROUP BY, กลายเป็นกลุ่ม, ว่า ฟังก์ชั่นรวม vykonuyutsya skin group okremo.

ข้อเสนอ HAVING

ยักโช WHERE ข้อกำหนดเพรดิเคตสำหรับการกรองแถว แล้ว ข้อเสนอ HAVINGซบเซา หลังจากจัดกลุ่มสำหรับการกำหนดที่คล้ายกับภาคแสดงที่กรองกลุ่มค่า ฟังก์ชั่นรวม. ข้อเสนอนี้จำเป็นสำหรับการตรวจสอบความหมายอีกครั้ง เนื่องจากถูกนำออกไปเพื่อขอความช่วยเหลือ ฟังก์ชั่นรวมไม่ใช่บันทึกสองสามแถว ลงชื่อเข้าใช้ คำจาก, แ กลุ่มของแถวดังกล่าว. ดังนั้นการตรวจสอบซ้ำดังกล่าวจึงไม่สามารถ ที่ไหน.

© 2022 androidas.ru - ทั้งหมดเกี่ยวกับ Android