Как сделать сортировку данных в эксель. Сортировка данных в Excel по заголовкам строк и столбцов

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

Думаю, всем известно, как выполнить сортировку по столбцу в алфавитном порядке или по возрастанию / убыванию. Это делается одним нажатием кнопки А-Я (A-Z) и Я-А (Z-A) в разделе Редактирование (Editing) на вкладке Главная (Home) либо в разделе Сортировка и фильтр (Sort & Filter) на вкладке Данные (Data):

Однако, сортировка в Excel имеет гораздо больше настраиваемых параметров и режимов работы, которые не так очевидны, но могут оказаться очень удобны:

Сортировка по нескольким столбцам

Я покажу Вам, как в Excel сортировать данные по двум или более столбцам. Работа инструмента показана на примере Excel 2010 – именно эта версия установлена на моём компьютере. Если Вы работаете в другой версии приложения, никаких затруднений возникнуть не должно, поскольку сортировка в Excel 2007 и Excel 2013 работает практически так же. Разницу можно заметить только в расцветке диалоговых окон и форме кнопок. Итак, приступим…


Сортировать данные по нескольким столбцам в Excel оказалось совсем не сложно, правда? Однако, в диалоговом окне Сортировка (Sort) кроется значительно больше возможностей. Далее в этой статье я покажу, как сортировать по строке, а не по столбцу, и как упорядочить данные на листе в алфавитном порядке по заголовкам столбцов. Вы также научитесь выполнять сортировку данных нестандартными способами, когда сортировка в алфавитном порядке или по значению чисел не применима.

Сортировка данных в Excel по заголовкам строк и столбцов

Я полагаю, что в 90% случаев сортировка данных в Excel выполняется по значению в одном или нескольких столбцах. Однако, иногда встречаются не такие простые наборы данных, которые нужно упорядочить по строке (горизонтально), то есть изменить порядок столбцов слева направо, основываясь на заголовках столбцов или на значениях в определённой строке.

Вот список фотокамер, предоставленный региональным представителем или скачанный из интернета. Список содержит разнообразные данные о функциях, характеристиках и ценах и выглядит примерно так:

Нам нужно отсортировать этот список фотокамер по наиболее важным для нас параметрам. Для примера первым делом выполним сортировку по названию модели:


В результате сортировки у Вас должно получиться что-то вроде этого:

В рассмотренном нами примере сортировка по заголовкам столбцов не имеет серьёзной практической ценности и сделана только для того, чтобы продемонстрировать Вам, как это работает. Таким же образом мы можем сделать сортировку нашего списка фотокамер по строке, в которой указаны размеры, разрешение, тип сенсора или по любому другому параметру, который сочтём более важным. Сделаем ещё одну сортировку, на этот раз по цене.

Наша задача – повторить описанные выше шаги 1 – 3. Затем на шаге 4 вместо строки 1 выбираем строку 4 , в которой указаны розничные цены (Retail Price). В результате сортировки таблица будет выглядеть вот так:

Обратите внимание, что отсортированы оказались данные не только в выбранной строке. Целые столбцы меняются местами, но данные не перемешиваются. Другими словами, на снимке экрана выше представлен список фотокамер, расставленный в порядке от самых дешёвых до самых дорогих.

Надеюсь, теперь стало ясно, как работает сортировка по строке в Excel. Но что если наши данные должны быть упорядочены не по алфавиту и не по возрастанию / убыванию?

Сортировка в произвольном порядке (по настраиваемому списку)

Если нужно упорядочить данные в каком-то особом порядке (не по алфавиту), то можно воспользоваться встроенными в Excel настраиваемыми списками или создать свой собственный. При помощи встроенных настраиваемых списков Вы можете сортировать, к примеру, дни недели или месяцы в году. Microsoft Excel предлагает два типа таких готовых списков – с сокращёнными и с полными названиями.

Предположим, у нас есть список еженедельных дел по дому, и мы хотим упорядочить их по дню недели или по важности.


Готово! Теперь домашние дела упорядочены по дням недели:

Замечание: Если Вы планируете вносить изменения в эти данные, помните о том, что добавленные новые или изменённые существующие данные не будут отсортированы автоматически. Чтобы повторить сортировку, нажмите кнопку Повторить (Reapply) в разделе Сортировка и фильтр (Sort & Filter) на вкладке Данные (Data).

Как видите, сортировка данных в Excel по настраиваемому списку – задача вовсе не сложная. Ещё один приём, которому мы должны научиться – сортировка данных по собственному настраиваемому списку.

Сортировка данных по собственному настраиваемому списку

В нашей таблице есть столбец Priority – в нём указаны приоритеты задач. Чтобы упорядочить с его помощью еженедельные задачи от более важных к менее важным, выполним следующие действия.

Повторите шаги 1 и 2 из предыдущего примера. Когда откроется диалоговое окно Списки (Custom Lists), в одноимённом столбце слева нажмите НОВЫЙ СПИСОК (NEW LIST) и заполните нужными значениями поле Элементы списка (List entries). Внимательно введите элементы Вашего списка именно в том порядке, в котором они должны быть расположены в результате сортировки.

Нажмите Добавить (Add), и созданный Вами список будет добавлен к уже существующим. Далее нажмите ОК .

Вот так выглядит наш список домашних дел, упорядоченных по важности:

Многим не нравиться беспорядочное расположение элементов. Поэтому разберем такой момент, как упорядочить файлы в папке в Windows 7 , а именно сортировку и группировку.

Если элементов не много, можно еще разобраться, но бывает что файлов с разными расширениями или папок очень большое количество. Такой обширный список будет трудно восприниматься. Конечно, когда разложено все по полочкам, куда более удобней. Для этого разработчики ОС и придумали специальные настройки фильтров упорядочивания.

Базовая фильтрация файлов и папок: сортировка и группировка

Вы можете упорядочить свои списки с помощью вариантов:

-сортировка – с помощью этой настройки можно быстро упорядочить файлы по размеру, типу (документы, ярлыки программ, изображения и т.д.) и многое другое. Чтобы воспользоваться этой опцией, нажмите на любом пустом месте проводника правой кнопкой мыши. В контекстном меню наведите на пункт “сортировка” и выберите желаемую для Вас опцию.

Вы также можете использовать другие фильтры сортировки. Для этого в контекстном меню выберите пункт «подробнее». Перед Вами откроется окно «выбор столбцов в таблице». Флажками отмечайте, какие опции хотите добавить. Нажимайте кнопки «вверх», «вниз», для определения расположения их в контекстном меню.

Не стоит забывать о пунктах «По возрастанию» и «По убыванию». Если выберем первую опцию, то сортировать будет от 0-9, от А-Я, если вторую то от Я-А, от 9-0.

При совмещении типа сортировок можно получить отличное упорядочивание файлов в папке в Windows 7 . Например, фильтр расставит группы файлов по типу, и в то же время по возрастанию.

- Группировка – с помощью этой настройки, Вы сможете создавать группы файлов и папок по размеру, имени, типу. Это означает, что вы можете отделить нужные элементы от других.

Чтобы воспользоваться данной возможностью, нажмите на пустом месте в проводнике Windows 7 правой кнопкой. Из появившегося меню выберите “Группировка” и задайте любой пункт группировки.

Примечание: Выше описанные методы применяются только к текущей папки. Все новые добавленные дополнительные параметры упорядочивания будут отображаться как в пункте “Сортировка”, так и в ”Группировка”.

Чтобы избавится от элементов группировки, кликните на «(Нет)», тогда все изменения исчезнут.

Опции сортировки и группировки могут быть использованы одновременно. Например, вы можете сгруппировать по размеру или типу и сортировать данную группу по дате, имени или другими свойствами.

Если вы нажмете левой кнопкой по названию группы, то и элементы.

Расширенная фильтрация упорядочивания файлов и папок Windows 7: сортировка и группировка

Для следующих параметров фильтрации необходимо в обязательном порядке использовать представление «плитка». Расширенные опции можно рассматривать как продолжение группировки по фильтрации. Вы можете использовать это, даже для фильтрации , основанной на очень специфических критериях.

В режиме представления «плитка» у Вас есть несколько столбцов, такие как имя, данные, размер и т.д. Если вы наведите на колонку, вы заметите небольшую стрелку на правой стороне. Нажмите на нее и вы увидите несколько вариантов, которые позволяют упорядочить по определенным группам (например, файлы с именами от А до К).

Выберите опцию и Вы увидите, как останутся только файлы, папки по заданному критерию. Кроме того, вы увидите небольшой флажок на правой стороне колонки, указывая на то, что фильтр активен.

Вы можете выбирать по нескольким столбцам на основе различных критериев. Кроме того, есть возможность использовать окно поиска для фильтрации еще более точных результатов. Чтобы отключить расширенную группировку, достаточно снять флажок с параметра.

Как вы видите, окно проводника может довольно мощно упорядочить файлы в папке в Windows 7 . После небольшого количества экспериментов, Вы привыкните ко всем доступным вариантам и быстро найдете искомые элементы.

Сортировка данных - неотъемлемая часть их анализа. Вам может потребоваться расположить имена в списке по алфавиту, составить список складских запасов и отсортировать его по убыванию или упорядочить строки по цветам или значкам. Сортировка данных помогает быстро визуализировать данные и лучше понимать их, упорядочивать и находить необходимую информацию и в итоге принимать более правильные решения.

Сортировать данные можно по тексту (от А к Я или от Я к А), числам (от наименьших к наибольшим или от наибольших к наименьшим), а также датам и времени (от старых к новым или от новых к старым) в одном или нескольких столбцах. Можно также выполнять сортировку по настраиваемым спискам, которые создаете вы сами (например, списку, состоящему из элементов "Большой", "Средний" и "Маленький"), или по формату, включая цвет ячеек и цвет шрифта, а также по значкам.

Примечания:

Сортировка текстовых значений

Примечания: Возможные проблемы

Сортировка чисел

Примечания:

Сортировка значений даты и времени

Примечания: Возможные проблемы

Сортировка по нескольким столбцам или строкам

Возможно, вы захотите выполнить сортировку по двум или нескольким столбцам или строкам, чтобы сгруппировать данные с одинаковыми значениями в одном столбце или строке, а затем отсортировать эти группы с одинаковыми значениями по другому столбцу или строке. Например, если есть столбцы "Отдел" и "Сотрудник", можно сначала выполнить сортировку по столбцу "Отдел" (для группировки всех сотрудников по отделам), а затем - по имени (для расположения имен сотрудников каждого отдела в алфавитном порядке). Можно одновременно выполнять сортировку по 64 столбцам.

Примечание: Для получения наилучших результатов в сортируемый диапазон нужно включить заголовки столбцов.

Сортировка по цвету ячейки, цвету шрифта или значку

Если диапазон ячеек или столбец таблицы был отформатирован вручную или с помощью условного форматирования с использованием цвета ячеек или цвета шрифта, можно также выполнить сортировку по цветам. Кроме того, можно выполнить сортировку по набору значков, созданных с помощью условного форматирования.

Сортировка по настраиваемым спискам

Для сортировки в порядке, заданном пользователем, можно применять настраиваемые списки. Например, столбец может содержать значения, по которым вы хотите выполнить сортировку, такие как "Высокий", "Средний" и "Низкий". Как настроить сортировку, чтобы сначала отображались значения "Высокий", затем - "Средний", а в конце - "Низкий"? Если отсортировать их в алфавитном порядке (от А до Я), то значения "Высокий" будут отображаться вверху, но за ними окажутся значения "Низкий", а не "Средний". А при сортировке от Я до А значения "Средний" окажутся в самом верху. В действительности значения "Средний" всегда, независимо от порядка сортировки должны отображаться в середине. Вы можете решить эту проблему, создав настраиваемый список.

Сортировка с учетом регистра

Сортировка слева направо

Как правило, сортировка выполняется сверху вниз, однако значения можно отсортировать слева направо.

Примечание: Таблицы не поддерживают возможность сортировки слева направо. Сначала преобразуйте таблицу в диапазон: выделите в ней любую ячейку и выберите пункты Работа с таблицами > Преобразовать в диапазон .

Примечание: При сортировке строк, являющихся частью структуры листа, в Excel сортируются группы наивысшего уровня (уровень 1) таким образом, что порядок расположения строк или столбцов детализации не изменится, даже если они скрыты.

Сортировка по части значения в столбце

Чтобы выполнить сортировку по части значения в столбце, например части кода (789-WDG -34), фамилии (Регина Покровская) или имени (Покровская Регина), сначала необходимо разбить столбец на две или несколько частей таким образом, чтобы значение, по которому нужно выполнить сортировку, оказалось в собственном столбце. Чтобы разбить значения в ячейке на части, можно воспользоваться текстовыми функциями или мастером текстов. Дополнительные сведения и примеры см. в статьях Разбивка текста по разным ячейкам и Разбивка текста по разным столбцам с помощью функций .

Сортировка меньшего диапазона в пределах большего

Предупреждение: Вы можете отсортировать значения в диапазоне, который является частью другого диапазона, однако делать это не рекомендуется, так как в результате будет разорвана связь между отсортированным диапазоном и исходными данными. Если отсортировать данные, как показано ниже, выбранные сотрудники окажутся связаны с другими отделами.

К счастью, Excel выдает предупреждение, если обнаруживает подобную попытку:

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

Если результат не соответствует желаемому, нажмите кнопку Отменить .

Примечание: Отсортировать подобным образом значения в таблице нельзя.

Дополнительные сведения об основных проблемах с сортировкой

Если результаты сортировки данных не соответствуют ожиданиям, сделайте следующее.

Проверьте, не изменились ли значения, возвращаемые формулами Если сортируемые данные содержат одну или несколько формул, значения, возвращаемые ими, при пересчете листа могут измениться. В этом случае примените сортировку повторно, чтобы получить актуальные результаты.

Перед сортировкой отобразите скрытые строки и столбцы При сортировке по столбцам скрытые строки не перемещаются, а при сортировке по строкам не перемещаются скрытые столбцы. Перед сортировкой данных целесообразно отобразить скрытые строки и столбцы.

Проверьте текущий параметр языкового стандарта Порядок сортировки зависит от выбранного языка. Убедитесь в том, что на панели управления в разделе Региональные параметры или Язык и региональные стандарты задан правильный языковой стандарт. Сведения о том, как изменить параметр языкового стандарта, см. в справке Microsoft Windows.

Вводите заголовки столбцов только в одну строку Если необходимо использовать заголовки из нескольких строк, установите перенос слов в ячейке.

Включите или отключите строку заголовков Обычно рекомендуется отображать строку заголовков при сортировке по столбцам, так как она облегчает восприятие данных. По умолчанию значение в заголовке не включается в сортировку. Но в некоторых случаях может потребоваться включить или отключить заголовок, чтобы значение в заголовке включалось или не включалось в сортировку. Выполните одно из следующих действий.

    Чтобы исключить из сортировки первую строку данных (заголовок столбца), на вкладке Главная в группе Редактирование нажмите кнопку Сортировка и фильтр , выберите команду Настраиваемая сортировка и установите флажок .

    Чтобы включить в сортировку первую строку данных (так как она не является заголовком столбца), на вкладке Главная в группе Редактирование нажмите кнопку Сортировка и фильтр , выберите команду Настраиваемая сортировка и снимите флажок Мои данные содержат заголовки .

Я пытаюсь понять различия между Сортировка вставки и Сортировка выбора.

Оба они, похоже, имеют два компонента: несортированный список и отсортированный список. Они оба, кажется, берут один элемент из несортированного списка и помещают его в отсортированный список в нужном месте. Я видел некоторые сайты/книги, говорящие, что сортировка сортировки делает это путем замены по одному, а сортировка вставки просто находит нужное место и вставляет его. Тем не менее, я видел, что в других статьях говорится что-то, говоря, что сортировка вставки также своп. Следовательно, я смущен. Есть ли какой-нибудь канонический источник?

15 ответов

Выбор Сортировка:

Учитывая список, возьмите текущий элемент и обменивайте его с наименьшим элементом в правой части текущего элемента.

Вставка Сортировка:

Учитывая список, возьмите текущий элемент и вставьте его в соответствующую позицию списка, настроив список каждый раз, когда вы вставляете. Это похоже на размещение карт в карточной игре.

Время Сложность сортировки выбора всегда n(n - 1)/2 , тогда как сортировка вставки имеет более сложную временную сложность, так как ее наихудшая сложность n(n - 1)/2 . Как правило, это будет меньше или равно сравнению, тогда n(n - 1)/2 .

Оба сортировки сортировки и выбора сортировки имеют внешний цикл (по каждому индексу) и внутренний цикл (по подмножеству индексов). Каждый проход внутреннего контура расширяет отсортированную область на один элемент за счет несортированной области, пока не закончится несортированные элементы.

Разница заключается в том, что делает внутренний цикл:

    В сортировке сортировки внутренний цикл находится над несортированными элементами. Каждый проход выбирает один элемент и перемещает его в свое конечное местоположение (в текущем конце отсортированной области).

    При сортировке вставки каждый проход внутреннего цикла повторяется по отсортированным элементам. Сортированные элементы смещаются до тех пор, пока петля не найдет нужное место для вставки следующего несортированного элемента.

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

Что касается обмена: выбор сортировки делает одну свопинг за проход внутреннего цикла. Сортировка вставки обычно сохраняет элемент, который должен быть вставлен как temp , перед внутренним циклом, оставляя место для внутреннего цикла смещать отсортированные элементы на единицу, а затем копирует temp в точку ввода после.

Возможно, путаница заключается в том, что вы сравниваете описание сортировки связанного списка с описанием сортировки массива. Но я не могу быть уверен, так как вы не указали свои источники.

Самый простой способ понять алгоритмы сортировки - это часто, чтобы получить подробное описание алгоритма (не такие неопределенные вещи, как "этот сорт использует swap. Где-то я не говорю, где"), получить игровые карты (5-10 должно быть достаточно для простых алгоритмов сортировки) и запустить алгоритм вручную.

Сортировка сортировки: сканирование через несортированные данные, которые ищут наименьший оставшийся элемент, затем поменяйте его на позицию сразу после отсортированных данных. Повторяйте до конца. При сортировке списка вам не нужно менять минимальный элемент на позицию, вместо этого вы можете удалить список node из его старой позиции и вставить его в новый.

Вставка сортировки: возьмите элемент сразу после отсортированных данных, просмотрите отсортированные данные, чтобы найти место для его размещения, и поместите туда. Повторяйте до конца.

Вставка сортировки может использовать swap во время фазы "сканирования", но не обязательно, и это не самый эффективный способ, если вы не сортируете массив типа данных, который: (a) не может быть перемещен, только скопирован или местами; и (b) дороже копирования, чем для обмена. Если сортировка вставки использует swap, то, как она работает, является то, что вы одновременно выполняете поиск места и помещаете туда новый элемент, многократно меняя новый элемент с элементом непосредственно перед ним, до тех пор, пока элемент до него больше, чем Это. Когда вы достигнете элемента, который не больше, вы нашли правильное местоположение и перейдете к следующему новому элементу.

Логика для обоих алгоритмов весьма схожа. Оба они имеют частично отсортированную подматрицу в начале массива. Единственное различие заключается в том, как они ищут следующий элемент, который будет помещен в отсортированный массив.

    Сортировка вставки : добавляет следующий элемент в правильное положение;

    Сортировка сортировки : выбирает наименьший элемент и обменивает его с текущим элементом;

Кроме того, Сортировка вставки стабильна, в отличие от Выбор Сортировка .

Я реализовал оба в python, и стоит отметить, насколько они похожи:

Def insertion(data): data_size = len(data) current = 1 while current < data_size: for i in range(current): if data < data[i]: temp = data[i] data[i] = data data = temp current += 1 return data

С небольшим изменением можно выполнить алгоритм выбора Сортировка.

Def selection(data): data_size = len(data) current = 0 while current < data_size: for i in range(current, data_size): if data[i] < data: temp = data[i] data[i] = data data = temp current += 1 return data

В двух словах, я думаю, что сортировка сортировки сначала ищет наименьшее значение в массиве, а затем выполняет обмен, тогда как сортировка вставки принимает значение и сравнивает его с каждым значением, оставшимся до него (за ним). Если значение меньше, оно меняет местами. Затем одно и то же значение сравнивается снова, и если оно меньше позади него, оно снова меняет местами. Надеюсь, это имеет смысл!

Выбор Сортировка: по мере того как вы начинаете создавать отсортированный подсписчик, алгоритм гарантирует, что отсортированный подсписчик всегда полностью сортируется не только по его собственным элементам, но также и по полному массиву, то есть как отсортированному, так и несортированному подсписку. Таким образом, новый наименьший элемент, однажды найденный из несортированного подсписок, будет просто добавлен в конец отсортированного подсписок.

Вставка Сортировка: алгоритм снова разделяет массив на две части, но здесь элемент выбирается из второй части и вставлен в правильное положение в первую часть. Это никогда не гарантирует, что первая часть будет сортироваться в терминах полного массива, хотя, конечно, в последнем проходе каждый элемент находится в правильной сортированной позиции.

Я дам еще одну попытку: рассмотрим, что происходит в счастливом случае почти отсортированного массива.

При сортировке массив можно представить как имеющее две части: левая сторона - отсортированная, правая сторона - несортированная.

Вставка сортировки - выберите первый несортированный элемент и попытайтесь найти место для него среди уже отсортированной части. Поскольку вы выполняете поиск справа налево, вполне может случиться так, что первый отсортированный элемент, который вы сравниваете (самый большой, самый правый в левой части), меньше выбранного элемента, поэтому вы можете немедленно продолжить следующий несортированный элемент.

Сортировка сортировки - выберите первый несортированный элемент и попытайтесь найти наименьший элемент всей несортированной части и замените эти два, если желательно. Проблема состоит в том, что, поскольку правая часть является несортированной, вы должны каждый раз мыслить каждый элемент, так как вы не можете быть уверены, есть ли или нет даже меньший элемент, чем выбранный.

ВЫБОР СОРТИРОВКИ
Предположим, что существует массив чисел, написанных определенным/случайным образом, и мы можем сказать, что мы должны упорядочиваться в порядке возрастания. Также возьмите по одному числу за раз и замените их наименьшим номером. доступных в списке. сделав этот шаг, мы в конечном итоге получим желаемый результат.

ВСТАВКА СОРТИРОВКА
Помните о том же предположении, но единственное отличие состоит в том, что на этот раз мы выбираем по одному числу за раз и вставляем его в предварительно отредактированную часть, что уменьшает сравнение и, следовательно, более эффективно.

Короче говоря,

Сортировка сортировки: Выберите первый элемент из несортированного массива и сравните его с оставшимися несортированными элементами. Он похож на сортировку Bubble, но вместо того, чтобы заменять каждый меньший элемент, сохраняет индекс наименьшего элемента обновленным и заменяет его в конце каждого цикла.

Сортировка вставки: . Она противоположна сортировке выбора, где он выбирает первый элемент из несортированного подматрица и сравнивает его с отсортированным подматрицей и вставляет самый маленький найденный элемент и сдвигает все отсортированные элементы от его права до первого несортированного элемента.

Внутренний цикл сортировки вставки проходит через уже отсортированные элементы (в отличие от сортировки сортировки). Это позволяет ему прервать внутренний цикл, когда найдено правильное положение . Который означает, что:

  1. Внутренний цикл будет проходить только половину его элементов в среднем случае.
  2. Внутренний цикл будет прерван раньше, если массив почти отсортирован.
  3. Внутренний цикл будет отменен немедленно, если массив уже отсортирован, что делает сложность сортировки вставки линейной в этом случае.

Сортировка выбора должна всегда проходить через все внутренние элементы цикла. Вот почему сортировка вставки в основном предпочтительна для сортировки. Но, с другой стороны, сортировка выбора делает гораздо меньше элементарных свопов, что может быть более важным в некоторых случаях.

При выборке данных бывает важно получить их в определенном упорядоченном виде. Сортировка может быть выполнена по любым полям с любым типом данных. Это может быть сортировка по возрастанию или убыванию для числовых полей. Для символьных (текстовых) полей это может быть сортировка в алфавитном порядке, хотя по сути, она так же является сортировкой по возрастанию или убыванию. Она так же может быть выполнена в любых направлениях – от А, до Я, и наоборот от Я, до А.

Суть процесса сортировки заключается к приведению последовательности к определенному порядку. Подробней о сортировки можно узнать в статье "Алгоритмы сортировки" Например, сортировка произвольной числовой последовательности по возрастанию:

2, 4, 1, 5, 9

должна привести к упорядоченной последовательности:

1, 2, 4, 5, 6

Аналогично, при сортировке по возрастанию строковых значений:

Иванов Иван, Петров Петр, Иванов Андрей

результат должен быть:

Иванов Андрей, Иванов Иван, Петров Петр

Здесь строка "Иванов Андрей" перешла в начало, так как сравнение строк производится посимвольно. Обе строки начинаются одинаковых символов "Иванов ". Так как символ "А" в слове "Андрей" идет раньше в алфавите, чем символ "И" в слове "Иван", то эта строка будет поставлена раньше.

Сортировка в запросе SQL

Для выполнения сортировки в строку запроса нужно добавить команду ORDER BY. После этой команды указывается поле, по которому производится сортировка.

Для примеров используем таблицу товаров goods:

num
(номер товара)
title
(название)
price
(цена)
1 Мандарин 50
2 Арбуз 120
3 Ананас 80
4 Банан 40

Данные здесь уже упорядочены по столбцу "num". Теперь, построим запрос, который выведет таблицу с товарами, упорядоченными в алфавитном порядке:

SELECT * FROM goods ORDER BY title

SELECT * FROM goods – указывает выбрать все поля из таблицы goods;

ORDER BY – команда сортировки;

title – столбец, по которому будет выполняться сортировка.

Результат выполнения такого запроса следующий:

num title price
3 Ананас 80
2 Арбуз 120
4 Банан 40
1 Мандарин 50

Так же можно выполнить сортировку для любого из полей таблицы.

Направление сортировки

По умолчанию, команда ORDER BY выполняет сортировку по возрастанию. Чтобы управлять направлением сортировки вручную, после имени столбца указывается ключевое слово ASC (по возрастанию) или DESC (по убыванию). Таким образом, чтобы вывести нашу таблицу в порядке убывания цен, нужно задать запрос так:

SELECT * FROM goods ORDER BY price DESC

Сортировка по возрастанию цены будет:

SELECT * FROM goods ORDER BY price ASC

Сортировка по нескольким полям

SQL допускает сортировку сразу по нескольким полям. Для этого после команды ORDER BY необходимые поля указываются через запятую. Порядок в результате запроса будет настраиваться в той же очередности, в которой указаны поля сортировки.

column1 column2 column3
3 1 c
1 3 c
2 2 b
2 1 b
1 2 a
1 3 a
3 4 a

Отсортируем таблицу по следующим правилам:

SELECT * FROM mytable ORDER BY column1 ASC, column2 DESC, column3 ASC

Т.е. первый столбец по возрастанию, второй по убыванию, третий опять по возрастанию. Запрос упорядочит строки по первому столбцу, затем, не разрушая первого правила, по второму столбцу. Затем, так же, не нарушая имеющихся правил, по третьему. В результате получится такой набор данных:

column1 column2 column3
1 3 a
1 3 c
1 2 a
2 2 b
2 1 b
3 1 a
3 1 c

Порядок команды ORDER BY в запросе

Сортировка строк чаще всего проводится вместе с условием на выборку данных. Команда ORDER BY ставится после условия выборки WHERE. Например, выбираем товары с ценой меньше 100 рублей, упорядочив по названию в алфавитном порядке:

SELECT * FROM goods WHERE price 100 ORDER BY price ASC



 

Пожалуйста, поделитесь этим материалом в социальных сетях, если он оказался полезен!