Инструменты пользователя

Инструменты сайта


mysql:when_to_order_before_group

Это старая версия документа!


When to Order before Group

Когда речь идет о функциях MySQL ORDER BY и GROUP BY, существует порядок действий. Это то, что внутренне понятно, но часто бывает трудно понять, как и когда правильно это применять. В этой статье я попытаюсь объяснить это на примерах.

Таблицы в транзакционном стиле

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

Последний или первый в группе

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

Гипотетический дамп данных о игре в гольф

IDHoleDistanceDate
18169 08-21
21033 08-05
35188 08-02
41364 08-17
53200 08-02
6835 08-21
714142 08-01
811107 08-05
91083 08-03
116179 08-11
14184 08-24
117124 08-16
17104 08-08
141 08-28
17147 08-18
11324 08-06
17126 08-24
1948 08-15
18176 08-22
2974 08-30
Я установил максимальное значение для Distance равным 200. Это потому, что я предполагаю, что в реальном мире на самом деле существуют максимальные физические расстояния между лунками (я, очевидно, никогда не играл в гольф).
mysql/when_to_order_before_group.1625858665.txt.gz · Последние изменения: 2023/01/12 12:15 (внешнее изменение)