АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

GROUP BY

Читайте также:
  1. Do you have any stories about bad travel etiquette? Who is the worst fellow traveler you’ve ever come across? Share your ideas with your group mates.
  2. Free word-groups and phraseological units
  3. Syntactic relations in Engl, forms and means of syntactic connection. The word group theory.
  4. THE LAST GROUP OF ROMANTIC POETS.
  5. Which of the following is NOT an example of an in-group?

Для обчислення сумарних значень на основі даних однієї або декількох таблиць можна використовувати пропозицію GROUP BY (групування), що має такий синтаксис:

GROUP BY {column1} [,...]

Наприклад, наступний запит пов'язує дві таблиці, сортує їх по полю CustomerID, для кожного значення CustomerID створює один рядок в результуючому наборі даних і обчислює кількість значень поля OrderID для кожного значення CustomerID:

SELECT Customers.CustomerID, COUNT (Orders.OrderID)

FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID

GROUP BY Customers.CustomerID

У наведеному вище прикладі запиту ми використовували в реченні SELECT агрегатну функцію COUNT, яка обчислює кількість значень.

HAVING

HAVING має призначення, схоже з WHERE, але використовується при групуванні (GROUP BY) та з агрегатними даними. наприклад:

SELECT Customers.CustomerID, COUNT (Orders.OrderID)

FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID

GROUP BY Customers.CustomerID

HAVING COUNT (Orders.OrderID)> = 10

Цей запит аналогічний попередньому, але в результуючий набір даних включені тільки замовники, які розмістили десять або більше замовлень.

ORDER BY

Пропозиція ORDER BY (необов'язкове) застосовується для сортування результуючого набору даних по одній або кільком колонкам. Для визначення порядку сортування використовуються ключові слова ASC (за зростанням) або DESC (за спаданням). За замовчуванням дані сортуються за зростанням. Синтаксис пропозиції ORDER BY має вигляд:

ORDER BY column1 [{ASC | DESC}] [, column2 [{ASC | DESC}] …

Наприклад, для сортування співробітників на прізвище і потім по імені слід використовувати наступний SQL-запит:

SELECT LastName, FirstName, Title

FROM Employees

ORDER BY LastName, FirstName

Якщо сортування даних потрібно в порядку убування (наприклад, потрібно список продуктів в порядку убування цін), використовується ключове слово DESC:

SELECT ProductName, UnitPrice

FROM Products

ORDER BY UnitPrice DESC

WHERE

Для фільтрації результатів, що повертаються оператором SELECT, можна використовувати WHERE, синтаксис якого має вигляд:

WHERE expression1 [{AND | OR} expression2 [...]]

Наприклад, замість отримання повного списку продуктів можна обмежитися лише тими з них, у яких значення поля CategoryID одно 4:

SELECT *

FROM Products

WHERE CategoryID = 4

У пропозиції WHERE можна використовувати різні вирази, наприклад:

SELECT *

FROM Products

WHERE CategoryID = 2 AND SupplierID > 10

або:

SELECT ProductName, UnitPrice

FROM Products

WHERE CategoryID = 3 OR UnitPrice < 50

або:

SELECT ProductName, UnitPrice

FROM Products

WHERE Discontinued IS NOT NULL

Вираз 'IS NOT NULL' означає, що відповідна колонка результуючого набору даних не може містити порожніх значень. У пропозиції WHERE можна використовувати один з шести операторів відносин (<, <=, <>, =, >, >=), визначених в SQL.

Крім перерахованих вище простих операторів порівняння, можна використовувати і спеціальні оператори порівняння:

- BETWEEN - застосовується при перевірці знаходження значення усередині заданого інтервалу (включаючи його межі);

- IN - застосовується для перевірки наявності значення в списку (множині даних);

- LIKE - застосовується при перевірці відповідності значення заданої масці (шаблону).

Наведемо кілька прикладів застосування цих операторів. Для зіставлення даних з маскою застосовується ключове слово LIKE:

SELECT CompanyName, ContactName

FROM Customers

WHERE CompanyName LIKE 'M%'

У даній масці символ '%' (відсоток) замінює будь-яку послідовність символів, а символ '_' (підкреслення) - один будь-який символ. Той же самий результат може бути отриманий таким способом:

SELECTCompanyName, ContactName

FROM Customers

WHERE CompanyName BETWEEN 'M' AND 'N'

В останньому прикладі ми можемо розширити область пошуку. Зокрема, при пошуку компаній, що починаються з букв від A до C, можна виконати наступний оператор SELECT:

SELECT CompanyName, ContactName

FROM Customers

WHERE CompanyName BETWEEN 'A' AND 'D'

Використовуючи оператор LIKE, ми можемо звузити діапазон пошуку, застосувавши більш складну маску для порівняння. Наприклад, щоб знайти компанії, які містять у своїй назві підрядок bl, можна застосувати наступний запит:

SELECT CompanyName, ContactName

FROM Customers

WHERE CompanyName LIKE '% bl%'

Маска '% bl%' показує, що до і після шуканого підрядка може бути будь-яка кількість довільних символів.

Використовуючи оператор IN, можна задати список значень, в якому має міститися значення поля:

SELECT CompanyName, ContactName

FROM Customers

WHERE CustomerID IN('ALFKI', 'BERGS', 'VINET')

Контрольні запитання

1. Ключові слова all, distinct

2. Призначення та особливості використання where.

3. Призначення та особливості використання group by.

4. Призначення та особливості використання having.

5. Призначення та особливості використання order by.

6. Призначення та особливості використання between... and.

7. Призначення та особливості використання like.

8. Призначення та особливості використання in.


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.011 сек.)