Группировка данных

СОРТИРОВКА ДАННЫХ

Лекция 3. Сортировка и группировка данных с помощью SQL

КЛЮЧЕВОЕ СЛОВО TOP

Общий вид: TOP n [PERCENT]

Использование ключевого слова TOP n, где n – числовое значение, позволяет отобрать в результат не все строки, а только n первых. При этом выбираются первые строки выборки, а не исходных данных.

Задача 7. Найти первые 5 книг изданных издательством, код которого равен1.

Решение: SELECT TOP 5 * FROM Книги

WHERE Издательство=1;

Можно так же выбирать не фиксированное количество строк, а определённый процент от всех строк, удовлетворяющих условию. Для этого необходимо добавить ключевое слово PERCENT.

Задача 8. Вывести 50% книг изданных издательством, код которого равен1.

Решение: SELECT TOP 50 PERCENT * FROM Книги

WHERE Издательство=1;

Строки в БД считываются в том порядке, в котором они были добавлены в таблицу. Необходимый порядок записей в выборке и отражение строк можно задать с помощью предложения ORDER BY. Это предложение всегда располагается после предложений FROM или WHERE.

Общий вид: ORDER BY <список полей> [ASC|DESC]

ASC - является не обязательным, задаёт сортировку по возрастанию, DESC – является обязательным при сортировке по убыванию.

SELECT [ALL|DISTINCT| DISTINCTROW |

[TOP n [PERCENT]] <список_полей> | *

[FROM {<имя_таблицы>},... ]

[WHERE <условие> ]

[ORDER BY {<имя_поля> [ASC] | DESC},...]

Задача 1. Вывести список всех авторов в алфавитном порядке, фамилии которых заканчиваются на ‘ин’.

Решение: SELECT * FROM Авторы

WHERE Фамилия LIKE ‘*ин’ ORDER BY Фамилия;

Задача 2. Вывести список книг по убыванию относительно цен.

Решение: SELECT * FROM Книги ORDER BY Название DESC;

Предложение GROUP BY группирует записи таблицы, определенной в предложении FROM, в разделы или группы таким образом, чтобы в каждой группе все строки имели одинаковые значения. Предложение GROUP BY всегда располагается после предложений FROM или WHERE.

Общий вид: GROUP BY <список полей>

SELECT [ALL|DISTINCT| DISTINCTROW |

[TOP n [PERCENT]] <список_полей> | *

[FROM {<имя_таблицы>},... ]

[WHERE <условие> ]

[GROUP BY {<имя_поля>},... ]

[ORDER BY {<имя_поля> [ASC] | DESC},...]

Предложение GROUP BY не предполагает упорядочивания. Для упорядочивания результата следует поместить ORDER BY после GROUP BY.

Задача 3. Найдите книги, изданные в издательстве Вагриус, код которого равен 4. Произвести группировку данных относительно поля Автор.

Решение: SELECT * FROM Книги

WHERE Издательство = 4 GROUP BY Автор;

Можно задать сортировку относительно фамилий автора.

SELECT * FROM Книги

WHERE Издательство = 4 GROUP BY Автор ORDER BY Автор;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: