نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی

توابع تجمع Sql. توابع جمع SQL - SUM، MIN، MAX، AVG، COUNT

برای خلاصه کردن اطلاعات موجود در پایگاه داده، SQL توابع جمعی را ارائه می دهد. یک تابع تجمیع یک ستون کامل از داده ها را به عنوان آرگومان می گیرد و یک مقدار واحد را برمی گرداند که آن ستون را به روشی خاص خلاصه می کند.

برای مثال، تابع مجموع AVG () ستونی از اعداد را به عنوان آرگومان می گیرد و میانگین آنها را محاسبه می کند.

برای محاسبه متوسط ​​درآمد سرانه یک ساکن Zelenograd، به پرس و جو زیر نیاز دارید:

«درآمد متوسط ​​=»، AVG (SUMD) را انتخاب کنید

SQL دارای شش تابع مجموع است که انواع مختلفی از خلاصه ها را ارائه می دهد (شکل 1):

- SUM () مجموع تمام مقادیر موجود در ستون را محاسبه می کند.

- AVG () میانگین را در بین مقادیر موجود در ستون محاسبه می کند.

- MIN () کوچکترین را در بین تمام مقادیر موجود در ستون پیدا می کند.

- MAX () بزرگترین را در بین تمام مقادیر موجود در ستون پیدا می کند.

- COUNT () تعداد مقادیر موجود در ستون را می شمارد.

- COUNT (*) تعداد ردیف های جدول نتیجه پرس و جو را می شمارد.

آرگومان یک تابع مجموع می تواند یک نام ستون ساده، مانند مثال قبلی، یا یک عبارت باشد، مانند عبارت زیر که مالیات سرانه را محاسبه می کند:

SELECT AVG (SUMD * 0.13)

این کوئری یک ستون موقت حاوی مقادیر (SUMD * 0.13) برای هر ردیف در جدول PERSON ایجاد می کند و سپس میانگین ستون موقت را محاسبه می کند.

مجموع درآمد تمام ساکنان Zelenograd را می توان با استفاده از تابع جمع SUM محاسبه کرد:

جمع (SUMD) را از شخص انتخاب کنید

تابع تجمیع همچنین می تواند برای محاسبه مجموع یک جدول از نتایج به دست آمده از پیوستن چندین جدول منبع استفاده شود. به عنوان مثال، می توانید کل درآمدی را که ساکنان از منبعی به نام بورسیه دریافت می کنند محاسبه کنید:

انتخاب جمع (پول)

از سود، HAVE_D

WHERE PROFIT.ID = HAVE_D.ID

AND PROFIT.SOURCE = 'بورسیه'

توابع مجموع MIN () و MAX () به شما امکان می دهند به ترتیب کوچکترین و بزرگترین مقادیر را در جدول پیدا کنید. با این حال، ستون می تواند حاوی مقادیر عددی یا رشته ای، یا مقادیر تاریخ یا زمان باشد.

برای مثال می توانید تعریف کنید:

الف) کمترین درآمد کل ساکنین و بالاترین مالیات قابل پرداخت:

SELECT MIN (SUMD)، MAX (SUMD * 0.13)

ب) تاریخ تولد مسن ترین و جوان ترین ساکن:

SELECT MIN (RDATE)، MAX (RDATE)

(ج) نام‌های خانوادگی، نام‌ها و نام‌های پدر اولین و آخرین ساکنان فهرست، به ترتیب حروف الفبا:

SELECT MIN (FIO)، MAX (FIO)

هنگام اعمال این توابع انبوه، باید به یاد داشته باشید که داده های عددی بر اساس قوانین حسابی مقایسه می شوند، تاریخ ها به ترتیب مقایسه می شوند (مقادیر تاریخ اولیه کمتر از موارد بعدی در نظر گرفته می شوند)، فواصل زمانی بر اساس مدت زمان آنها مقایسه می شوند.

هنگام استفاده از MIN () و MAX () با داده های رشته، نتیجه مقایسه دو رشته به جدول رمزگذاری کاراکتر مورد استفاده بستگی دارد.

تابع مجموع COUNT () تعداد مقادیر را در یک ستون از هر نوع می شمارد:

(الف) چند آپارتمان در منطقه کوچک 1 وجود دارد؟

SELECT COUNT (ADR) FROM FLAT WHERE ADR LIKE "%, 1_ _-%"

ب) چند نفر از ساکنان منابع درآمد دارند؟

تعداد (نام متمایز) از HAVE_D را انتخاب کنید

ج) چه تعداد منبع درآمد توسط ساکنان استفاده می شود؟

SELECT COUNT (DISTINCT ID) FROM HAVE_D (کلید کلیدی DISTINCT مشخص می کند که مقادیر غیر تکراری در ستون شمارش می شوند).

تابع مجموع ویژه COUNT (*) ردیف های جدول نتیجه را می شمارد نه مقادیر داده ها:

(الف) چند آپارتمان در منطقه کوچک 2 وجود دارد؟

انتخاب تعداد (*) FROM FLAT WHERE ADR LIKE "%, 2 __-%"

ب) ایوان ایوانوویچ چند منبع درآمد دارد؟

SELECT COUNT (*) FROM PERSON, HAVE_D WHERE FIO = "Ivanov Ivan Ivanovich" و PERSON.NOM = HAVE_D.NOM

(ج) چند نفر ساکن در یک آپارتمان در یک آدرس معین زندگی می کنند؟

SELECT COUNT (*) FROM PERSON WHERE ADR = "Zelenograd, 1001-45"

یکی از راه‌های درک چگونگی اجرای پرس‌و‌جوهای انبوه، این است که اجرای کوئری را در دو بخش در نظر بگیرید. ابتدا مشخص می‌شود که پرس‌وجو چگونه بدون توابع انبوه کار می‌کند و چندین ردیف از نتایج را برمی‌گرداند. سپس توابع انبوه به نتایج پرس و جو اعمال می شوند و یک ردیف خلاصه منفرد را برمی گرداند.

به عنوان مثال، پرس و جو پیچیده زیر را در نظر بگیرید: میانگین درآمد سرانه کل، مجموع درآمد کل ساکنان، و میانگین درآمد منبع را به عنوان درصدی از کل درآمد ساکنان بیابید. پاسخ توسط اپراتور داده می شود

SELECT AVG (SUMD)، SUM (SUMD)، (100 * AVG (money / SUMD)) FROM PERSON, PROFIT, HAVE_D WHERE PERSON.NOM = HAVE_D.NOM و HAVE_D.ID = PROFIT.ID

بدون توابع انبوه، پرس و جو به صورت زیر خواهد بود:

SUMD, SUMD, MONEY / SUMD FROM PERSON, PROFIT, HAVE_D WHERE PERSON.NOM = HAVE_D.NOM و HAVE_D.ID = PROFIT.ID را انتخاب کنید

و یک ردیف از نتایج را برای هر مقیم و منبع درآمد خاص برمی گرداند. توابع انبوه از ستون های جدول نتیجه این پرس و جو برای تولید یک جدول تک ردیفی با نتایج خلاصه استفاده می کنند.

در ردیف ستون های برگشتی، می توانید به جای نام هر ستون، یک تابع تجمیع را مشخص کنید. به عنوان مثال، می توان آن را در عبارتی گنجاند که مقادیر دو تابع مجموع را اضافه یا کم می کند:

حداکثر (SUMD) -MIN (SUMD) را از شخص انتخاب کنید

با این حال، یک تابع تجمعی نمی تواند آرگومان دیگری برای تابع تجمیعی باشد، یعنی. توابع جمع تو در تو ممنوع هستند.

علاوه بر این، توابع انبوه و نام ستون های معمولی را نمی توان همزمان در لیست ستون های برگشتی استفاده کرد، زیرا هیچ نکته ای در این مورد وجود ندارد، به عنوان مثال:

FIO، SUM (SUMD) را از شخص انتخاب کنید

در اینجا، اولین عنصر لیست به DBMS دستور می دهد تا جدولی ایجاد کند که از چندین ردیف تشکیل شده و برای هر ساکن یک ردیف داشته باشد. مورد دوم در لیست از DBMS می خواهد که یک مقدار نتیجه را دریافت کند که مجموع مقادیر در ستون SUMD است. این دو دستورالعمل با یکدیگر در تضاد هستند که منجر به خطا می شود.

موارد فوق در مورد پردازش سوالات فرعی و پرس و جو با گروه بندی اعمال نمی شود.

استفاده از توابع جمع

SQL بسیاری از توابع داخلی از دسته‌های مختلف را تعریف می‌کند، که در میان آنها، توابع انبوهی که بر روی مقادیر ستون‌ها در مجموعه‌ای از سطرها عمل می‌کنند و یک مقدار واحد را برمی‌گردانند، جایگاه ویژه‌ای را اشغال می‌کنند. آرگومان های توابع جمع می توانند هم ستون های جدول و هم نتایج عبارات روی آنها باشند. توابع مجموع خود را می توان در سایر عبارات حسابی گنجاند. جدول زیر متداول‌ترین توابع جمع‌آوری استاندارد مورد استفاده را فهرست می‌کند.


فرمت کلی یک تابع مجموع یکنواخت به شرح زیر است:

تابع_نام ([ALL | DISTINCT] عبارت)

جایی که DISTINCT نشان می دهد که تابع باید فقط مقادیر آرگومان های مختلف را در نظر بگیرد و ALL - همه مقادیر، از جمله مقادیر تکراری (این پیش فرض است). به عنوان مثال، تابع AVG با کلمه کلیدی DISTINCT برای ردیف های ستون با مقادیر 1، 1، 1 و 3، 2 را برمی گرداند و اگر کلمه کلیدی ALL وجود داشته باشد، 1.5 را برمی گرداند.

توابع جمع در بندهای SELECT و HAVING استفاده می شوند. در اینجا ما به کاربرد آنها در بند SELECT نگاه خواهیم کرد. در این مورد، عبارت در آرگومان تابع برای تمام ردیف‌های جدول ورودی عبارت SELECT اعمال می‌شود. علاوه بر این، توابع جمع و ستون های جدول (یا عبارات با آنها) را نمی توان در بند SELECT استفاده کرد، مگر اینکه عبارت GROUP BY که در بخش بعدی به آن خواهیم پرداخت، وجود نداشته باشد.

تابع COUNT دو فرمت دارد. در حالت اول، تعداد ردیف‌های جدول ورودی برگردانده می‌شود، در حالت دوم، تعداد مقادیر آرگومان در جدول ورودی:

  • شمردن (*)
  • COUNT (بیان)

ساده ترین راه برای استفاده از این تابع، شمارش تعداد ردیف های جدول (همه یا ارضای یک شرط مشخص) است. برای این کار از اولین نحو استفاده می شود.

Query: تعداد انواع محصولاتی که اطلاعات مربوط به آنها در پایگاه داده موجود است.

COUNT (*) AS را انتخاب کنید "تعداد انواع محصولات"

از محصول

در دومین نوع نحو برای تابع COUNT، می توان از نام یک ستون به عنوان آرگومان استفاده کرد. در این حالت، تعداد تمام مقادیر در این ستون از جدول ورودی، یا فقط مقادیر غیر تکراری (هنگام استفاده از کلمه کلیدی DISTINCT) شمارش می شود.

Query: تعداد نام‌های متمایز موجود در جدول مشتری.

SELECT COUNT (FNAME متمایز)

از مشتری

استفاده از بقیه توابع مجموع یکنواخت مانند COUNT است، با این تفاوت که برای توابع MIN و MAX، استفاده از کلمات کلیدی DISTINCT و ALL بی معنی است. علاوه بر فیلدهای عددی، فیلدهای کاراکتر را می توان با توابع COUNT، MAX و MIN استفاده کرد. اگر آرگومان تابع انبوه حاوی هیچ مقداری نباشد، تابع COUNT 0 و بقیه NULL برمی‌گردانند.

SELECT MAX (تاریخ سفارش)

از جانب

WHERE تاریخ سفارش "1.09.2010"

تکلیف خود مطالعه: پرس و جوها را در SQL فرموله کنید تا داده های زیر را انتخاب کنید:

  • هزینه کل کلیه سفارشات؛
  • تعداد شهرهای متمایز موجود در جدول مشتری.


  • توابع مجموعمانند نام فیلدها در دستور SELECT استفاده می شود، با یک استثنا: آنها نام فیلد را به عنوان آرگومان می گیرند. با توابع جمعو AVGفقط از فیلدهای عددی می توان استفاده کرد. با توابع COUNT، MAX و MINهر دو فیلد عددی و کاراکتری را می توان استفاده کرد. هنگامی که با فیلدهای کاراکتر استفاده می شود حداکثرو MINآنها را به معادل ASCII ترجمه کرده و به ترتیب حروف الفبا پردازش می کند. برخی از DBMS ها استفاده از توده های تو در تو را مجاز می دانند، اما این یک انحراف از استاندارد ANSI با تمام عواقب بعدی است.


برای مثال می توانید تعداد دانش آموزانی که در هر رشته امتحان داده اند را محاسبه کنید. برای انجام این کار، باید یک پرس و جو گروه بندی شده توسط فیلد "Discipline" را اجرا کنید و در نتیجه نام رشته و تعداد ردیف های گروه را برای این رشته نمایش دهید. استفاده از کاراکتر * به عنوان آرگومان برای تابع COUNT به این معنی است که تمام خطوط گروه شمارش می شوند.

R1 را انتخاب کنید. نظم و انضباط، COUNT (*)

GROUP BY R1.

نتیجه:


رشته R1 SELECT، COUNT (*)

WHERE R1. نمره NULL نیست

GROUP BY R1.

نتیجه:


قبل از گروه بندی در مجموعه تاپل ها قرار نمی گیرد، بنابراین تعداد تاپل های گروه برای رشته "نظریه اطلاعات" 1 عدد کمتر خواهد بود.

اگر درخواست را به روش زیر بنویسید می توان نتیجه مشابهی به دست آورد:

R1 را انتخاب کنید. نظم و انضباط، COUNT (R1. ارزیابی)

گروه توسط R1. انضباط؛

عملکرد COUNT (ATTRIBUTE NAME)تعداد مقادیر تعریف شده را در یک گروه بر خلاف یک تابع می شمارد شمردن (*)،که تعداد خطوط گروه را می شمارد. در واقع، در گروه با رشته "نظریه اطلاعات" 4 خط وجود دارد، اما فقط 3 مقدار خاص از ویژگی "ارزیابی".


قوانین مدیریت مقادیر تهی در توابع انبوه

اگر هر یک از مقادیر در ستون برابر باشد خالیآنها هنگام محاسبه نتیجه تابع حذف می شوند.

اگر همه مقادیر در یک ستون برابر باشند خالی، سپس حداکثر حداقل میانگین مجموع = تهی، شمارش = 0 (صفر).

اگر جدول خالی است، شمارش (*) = 0 .

توابع تجمیع را می توان بدون عملیات گروه بندی اولیه نیز استفاده کرد، در این حالت کل رابطه به عنوان یک گروه در نظر گرفته می شود و برای هر گروه می توان یک مقدار را برای این گروه محاسبه کرد.

قوانینی برای تفسیر توابع کل

توابع مجموع را می توان در لیست خروجی گنجاند و سپس آنها را در کل جدول اعمال کرد.

SELECT MAX (امتیاز) از R1حداکثر امتیاز را در جلسه می دهد.

جمع را از R1 انتخاب کنیدمجموع تمام ارزیابی ها را در هر جلسه ارائه می دهد.

AVG (امتیاز) را از R1 انتخاب کنیدنمره متوسط ​​را برای کل جلسه می دهد.


2 نتیجه: "width = 640"

با مراجعه مجدد به پایگاه داده Session (جدول R1)، تعداد امتحانات با موفقیت را خواهیم یافت:

COUNT (*) را انتخاب کنید اجاره شده است _ امتحانات

WHERE درجه 2;

نتیجه:


آرگومان توابع جمع می تواند ستون های جداول جداول باشد. برای محاسبه، به عنوان مثال، تعداد مقادیر متمایز یک ستون خاص در یک گروه، لازم است از کلمه کلیدی DISTINCT همراه با نام ستون استفاده شود. بیایید تعداد نمرات دریافتی مختلف برای هر رشته را محاسبه کنیم:

رشته R1 SELECT، COUNT (ارزیابی متمایز R1)

WHERE R1. نمره NULL نیست

GROUP BY R1.

نتیجه:


اگر شرط صریح را در قسمت WHERE حذف کنید، همین نتیجه به دست می آید، در این صورت پرس و جو به شکل زیر خواهد بود:

R1 را انتخاب کنید. نظم و انضباط، COUNT (DISTINCT R1. ارزیابی)

گروه توسط R1. انضباط؛

عملکرد COUNT (R1.Evaluation متمایز)فقط قطعی در نظر می گیرد مختلفارزش های.

برای اینکه نتیجه مطلوب در این مورد به دست آید، لازم است یک تبدیل اولیه از نوع داده ستون "امتیاز" انجام شود و آن را به یک نوع واقعی برساند، سپس نتیجه محاسبه میانگین یک عدد نخواهد بود. عدد صحیح در این صورت درخواست به صورت زیر خواهد بود:


2 گروه توسط R2. گروه، R1. انضباط؛ در اینجا، تابع CAST () ستون "امتیاز" را به یک نوع داده معتبر تبدیل می کند. "عرض = 640"

R2.Group، R1.Discipline، شمارش (*) به عنوان مجموع، AVG (بازیگر (امتیاز به صورت اعشاری (3،1))) را به عنوان میانگین_نقطه انتخاب کنید.

از R1، R2

جایی که R1. نام کامل = R2. نام و R1. نمره صفر نیست

و R1. درجه 2

گروه بر اساس R2. گروه، R1. انضباط؛

در اینجا تابع قالب ()ستون Score را به یک نوع داده معتبر تبدیل می کند.


شما نمی توانید از توابع جمع در عبارت WHERE استفاده کنید زیرا شرایط در این بخش بر حسب یک ردیف و توابع جمع بر اساس گروه های ردیف ارزیابی می شوند.

عبارت GROUP BY به شما این امکان را می دهد که زیرمجموعه ای از مقادیر یک فیلد خاص را بر حسب فیلد دیگر تعریف کنید و یک تابع تجمیع را به زیر مجموعه اعمال کنید. این امکان ترکیب فیلدها و توابع انباشته در یک عبارت SELECT را فراهم می کند. توابع جمع را می توان هم در عبارت برای خروجی نتایج ردیف SELECT و هم در عبارت پردازش گروه های HAVING تولید شده استفاده کرد. در این حالت، هر تابع مجموع برای هر گروه انتخاب شده محاسبه می شود. مقادیر به دست آمده در هنگام محاسبه توابع کل می تواند برای نمایش نتایج مربوطه یا برای شرایط انتخاب گروه ها استفاده شود.

بیایید یک پرس و جو بسازیم که گروه هایی را که در آنها بیش از یک دس در یک رشته در امتحانات به دست آمده را نشان دهد:


یک نتیجه: "width = 640"

R2 را انتخاب کنید. گروه

از R1، R2

WHERE R1. نام کامل = R2. نام و

امتیاز R1 = 2

GROUP BY R2. گروه، R1. نظم و انضباط

داشتن تعداد (*) 1;

نتیجه:


ما یک DB "Bank" داریم که از یک جدول F تشکیل شده است که رابطه F را ذخیره می کند و حاوی اطلاعات حساب های موجود در شعب یک بانک خاص است:

کل موجودی حساب را در شعب پیدا کنید. می توان با انتخاب SUM از جدول برای هر شاخه، یک پرس و جو جداگانه برای هر یک از آنها ایجاد کرد، اما عملیات GROUP BY همه آنها را در یک دستور قرار می دهد:

انتخاب کنید شاخه , مجموع ( باقی مانده )

گروه به شاخه;

دسته بندی بر اساستوابع مجموع را به طور مستقل برای هر گروهی که با مقدار فیلد Branch مشخص شده است اعمال می کند. این گروه از خطوطی با همان مقدار فیلد Branch و تابع تشکیل شده است جمعبرای هر گروه به طور جداگانه اعمال می شود، یعنی کل موجودی حساب به طور جداگانه برای هر شعبه محاسبه می شود. مقدار فیلدی که برای آن اعمال می شود دسته بندی بر اساس، طبق تعریف، تنها یک مقدار در هر گروه خروجی دارد، همانطور که نتیجه یک تابع جمع دارد.


5000; آرگومان های موجود در عبارت HAVING از همان قوانینی پیروی می کنند که در عبارت SELECT که از GROUP BY استفاده می کند. آنها باید یک مقدار در هر گروه خروجی داشته باشند. "عرض = 640"

فرض کنید فقط آن شعبه هایی را انتخاب می کنید که مجموع موجودی حساب های آنها از 5000 دلار بیشتر است و همچنین کل موجودی شعب انتخاب شده. برای نمایش شعب با کل موجودی بیش از 5000 دلار، باید از بند HAVING استفاده کنید. عبارت HAVING معیارهایی را که برای حذف گروه‌های خاص از خروجی استفاده می‌شود، تعریف می‌کند، درست همانطور که عبارت WHERE برای ردیف‌های جداگانه انجام می‌دهد.

دستور صحیح به صورت زیر خواهد بود:

SELECT شعبه، SUM (موجودی)

دسته بندی بر اساس شاخه

داشتن مجموع ( باقی مانده ) 5 000;

استدلال در یک جمله داشتناز همان قوانینی که در جمله است پیروی کنید انتخاب کنیدکجا استفاده می شود دسته بندی بر اساس... آنها باید یک مقدار در هر گروه خروجی داشته باشند.


دستور زیر ممنوع خواهد بود:

SELECT شعبه، SUM (موجودی)

گروه به شعبه

تاریخ افتتاح = 12/27/2004 ;

رشته تاریخ افتتاحیهنمی توان در یک جمله استفاده کرد داشتنزیرا می تواند بیش از یک مقدار در هر گروه خروجی داشته باشد. برای جلوگیری از چنین وضعیتی، پیشنهاد داشتنفقط باید به مجموع ها و فیلدهای انتخاب شده اشاره داشته باشد دسته بندی بر اساس... یک راه درست برای ایجاد پرس و جو بالا وجود دارد:

SELECT شعبه، SUM (موجودی)

WHERE تاریخ افتتاح = '27/12/2004'

گروه به شاخه;


معنای این استعلام به شرح زیر است: میزان موجودی هر شعبه از حساب های افتتاح شده در 27 دسامبر 2004 را بیابید.

همانطور که قبلاً گفته شد، HAVING فقط می تواند از آرگومان هایی استفاده کند که در هر گروه خروجی مقدار یکسانی دارند. در عمل، ارجاعات به توابع انبوه عمومی ترین هستند، اما فیلدهایی که با GROUP BY انتخاب شده اند نیز معتبر هستند. به عنوان مثال، ما می خواهیم کل موجودی حساب شعب در سن پترزبورگ، پسکوف و اوریوپینسک را ببینیم:

SELECT شعبه، SUM (موجودی)

از F، Q

WHERE F. Branch = Q. Branch

گروه به شعبه

داشتن شعبه در («سن پترزبورگ»، «پسکوف»، «اوریوپینسک»)؛

100000; اگر کل موجودی بیش از 100000 دلار باشد، آن را در نسبت حاصل می بینیم، در غیر این صورت نسبت خالی دریافت می کنیم. "عرض = 640"

بنابراین، در عبارات حسابی محمول های موجود در شرط انتخاب عبارت HAVING، می توانید مستقیماً فقط از مشخصات ستون هایی که به عنوان ستون های گروه بندی در بند GROUP BY مشخص شده اند استفاده کنید. بقیه ستون ها را می توان فقط در مشخصات توابع جمعی COUNT، SUM، AVG، MIN و MAX مشخص کرد، که در این مورد مقداری مجموع را برای کل گروه ردیف ها محاسبه می کند. نتیجه اجرای عبارت HAVING یک جدول گروه بندی شده است که فقط شامل گروه های ردیفی است که نتیجه ارزیابی شرط انتخاب در قسمت HAVING برای آنها TRUE است. به ویژه، اگر عبارت HAVING در پرس و جوی وجود داشته باشد که حاوی GROUP BY نباشد، نتیجه اجرای آن یا یک جدول خالی یا نتیجه بخش های قبلی عبارت جدول است که به عنوان یک گروه بدون در نظر گرفته می شود. گروه بندی ستون ها بیایید به یک مثال نگاه کنیم. فرض کنید می‌خواهیم کل موجودی‌ها را برای همه شعبه‌ها نمایش دهیم، اما فقط در صورتی که بیش از 100000 دلار باشد. در این صورت، کوئری ما شامل عملیات گروه‌بندی نخواهد بود، بلکه شامل یک بخش HAVING خواهد بود و به شکل زیر خواهد بود:

انتخاب جمع ( باقی مانده )

داشتن مجموع ( باقی مانده ) 100 000;

اگر کل موجودی بیش از 100000 دلار باشد، آن را در نسبت حاصل می بینیم، در غیر این صورت نسبت خالی دریافت می کنیم.


می تواند پردازش دسته ای تعمیم یافته مقادیر میدان را انجام دهد. این کار با استفاده از توابع جمع انجام می شود. توابع مجموع یک مقدار واحد برای کل گروه جدول تولید می کنند. V SQLتوابع جمع زیر ارائه شده است:

  • شمردن- تعداد ردیف های جدول با مقادیر غیر NULL فیلد مشخص شده به عنوان آرگومان را می شمارد.
  • جمع- مجموع حسابی تمام مقادیر انتخابی فیلد داده شده را محاسبه می کند.
  • AVG- میانگین گیری تمام مقادیر انتخابی این فیلد را انجام می دهد.
  • حداکثر- بزرگترین مقدار را از تمام مقادیر انتخاب شده برای این فیلد نمایش می دهد.
  • MIN- خروجی کوچکترین مقدار از تمام مقادیر انتخاب شده برای این فیلد.

    استفاده از توابع جمع

    توابع جمع مانند نام فیلدها در جمله استفاده می شوند انتخاب کنیدپرس و جو، اما با یک استثنا: آنها نام فیلدها را به عنوان آرگومان می گیرند. فقط می توان از فیلدهای عددی استفاده کرد جمعو AVG... با شمردن, حداکثر، و MINهر دو فیلد عددی و کاراکتری را می توان استفاده کرد. هنگامی که با فیلدهای کاراکتر استفاده می شود حداکثرو MINآنها را به معادل ASCII ترجمه می کند. این به آن معناست که MINاولین و را انتخاب خواهد کرد حداکثرآخرین مقدار به ترتیب حروف الفبا

    برای یافتن کل فروش در جدول فروش، باید عبارت زیر را بنویسیم:

    SELECT SUM (SSum) FROM فروش

    در نتیجه، دریافت می کنیم:

    این کوئری تعداد مقادیر غیر خالی را در فیلد SNum جدول فروش شمارش کرده است. اگر درخواست را به صورت زیر بازنویسی کنیم:

    SELECT COUNT (SDate) FROM فروش

    سپس در نتیجه دریافت می کنیم:

    COUNT OF SD date
    4

    نتایج پرس و جوی مختلف هنگام محاسبه ظاهراً یکسان به دست می آید زیرا یکی از مقادیر فیلد SDate دارای مقدار خالی است ( خالی). هنگام استفاده از چنین درخواست هایی مراقب باشید.

مقالات مرتبط برتر