Смекни!
smekni.com

Організація баз даних (стр. 5 из 5)

SELECT * FROM Students ORDER BY sgrup DESC;

Якщо в директиві ORDER BY після імені першого стовпчика вказати другий, тоді після впорядкування за першим стовпчику будуть впорядковані за другим.

Якщо стовпчики перераховані в директиві SELECT, в директиві ORDER BY їх можна визначити, вказавши порядкові номери їх слідування після слова SELECT, тобто замість назви стовпчика ставляться порядкові номери:

SELECT sname, sgrup

FROM Students

ORDER BY 1,2

Директива GROUP BY

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

SELECT snum, sname, sgrup

FROM Students

GROUP BY snum;

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

В наступному прикладі виконується сортування рядків за стовпчиком sgrup. Спочатку значення з цього стовпчика сортуються в порядку зростання, а потім підраховується кількість представників кожної окремої групи і в якості другого результату виводяться у запиті:

SELECT sgrup, “HeadCount”=count (*)

FROM Students

GROUP BY sgrup

Крім того можна вибрати певні групи за допомогою директиви HAVING, яка дозволяє порівнювати деяку властивість групи з константою. Якщо група задовольняє умові (яка є логічним виразом) з директиви HAVING, тоді вона включається до результату запиту.

SELECT sgrup, “HeadCount”=count (*)

FROM Students

GROUP BY sgrup

HAVING count(*)=5;

Одержаний результат буде впорядкований відносно номеру групи і стосуватиметься лише тих груп, кількість представників яких у загальному списку рівна 5-ти.