Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laborarno-Praktychni_OK.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.79 Mб
Скачать

Групові функції в операторі select:

Наступні функції можуть бути використані в реченні GROUP:

AVG()

Середнє для групи GROUP.

SUM()

Сума елементів GROUP.

COUNT()

Число елементів в GROUP.

MIN()

Мінімальний елемент в GROUP.

MAX()

Максимальний елемент в GROUP.

Тут MIN() і MAX()можуть приймати рядок або число як аргумент. Ці функції не можуть використовуватися у виразі, хоча їхній параметр може бути виразом:

ПРИКЛАД: "SUM(value/10)" нормально, але от "SUM(value)/10" уже немає!

  • Рядки автоматично конвертуються в числа й навпаки в міру необхідності (прямо як в perl). При використанні операторів = <> <= >= < > як в інструкції WHERE, ліва сторона визначає, чи виконується тест із числами або з рядками. Всі порівняння рядків незалежні від регістра (ISO 8859-1).

ПРИКЛАД:

"a" < "b" ; Порівняння рядків

"a" < 0 ; Порівняння рядків

0 < "a" ; Порівняння чисел

a < 5 ; Якщо поле має тип CHAR, то

порівнюються рядки,

; інакше порівнюються числа.

Якщо треба враховувати регістр, використовуйте REGEXP в HAVING.

  • Ім'я стовпця не повинне мати префікса таблиці, якщо дане ім'я стовпця унікальне.

  • В LIKE вираз % і _ можуть випереджатися символом \ для одержання символьного виразу.

  • DATE є рядком з одним із синтаксисів:

    • YYMMDD (Рік вважається 2000, якщо YY < 70)

    • YYYYMMDD

    • YY.MM.DD Тут '.' може бути будь-яким нецифровим роздільником

    • YYYY.MM.DD Тут '.' може бути будь-яким нецифровим роздільником

  • IFNULL() і IF() повертає число або рядок залежно від ситуації, у якій використані.

  • Order і group стовпець може бути іменем стовпця, його псевдонімом або номером в операторі SELECT.

  • HAVING може приймати як аргумент будь-які поля або псевдоніми в select_expression. Він застосовується останнім перед передачею даних клієнтові без якої-небудь оптимізації. Не використовуйте його для елементів з речення WHERE.

Зауваження: Ви не можете написати: SELECT user,MAX(salary) FROM users GROUP BY users HAVING max(salary)>10 Замість цього, використовуйте щось приблизно таке (це гарний приклад використання псевдонімів стовпців): SELECT user,MAX(salary) AS sum FROM users GROUP BY users HAVING sum > 10

  • LIMIT псевдонімів один або два аргументи. Один аргумент задає максимальне число рядків у результаті. У випадку двох аргументів цей максимум задає другий аргумент, а перший вказує зсув першого рядка.

  • INTO OUTFILE 'filename' пише результати у файл. Файл не повинен існувати на момент виконання цієї команди. Для більше докладної інформації розглянути LOAD DATA INFILE. Це може бути досить небезпечною командою, якщо daemon запущений від імені root. Найкраще надати право доступу file тільки коли це абсолютно необхідно.

  • Ви можете використовувати числове значення в реченні ORDER BY для визначення стовпця, що Вас цікавить. Тобто, якщо Ви бажаєте провести сортування другого стовпця, певного у вашім запиті SELECT, варто написати "ORDER BY 2;". Це також корисно, коли Ви використовували функцію у вашім SELECT.

ПРИКЛАД:

SELECT Widget_Table.widget_id, Widget_Table.widget_name,

Purchase_Order_Item.widget_id, sum(Purchase_Order_Item.quantity)

FROM Widget_Table, Purchase_Order_Item

WHERE Widget_Table.widget_id = Purchase_Order_Item.widget_id

GROUP BY Widget_Table.widge t_name ORDER BY 4;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]