Это не опечатка, это первый столбец вашего набора результатов
Ламак
9
Обратите внимание, что этот синтаксис непереносим. В базах данных, отличных от mysql, он будет вести себя по-другому. В Oracle, например, это рассматривается как константа.
Рассел Рид
2
@RussellReed Да. к сожалению (поскольку использование псевдонима иногда очень полезно), ANSI SQL не позволяет группировать по порядковому номеру столбца. Причина в том, что группировка происходит перед проекцией. Но тогда ... что, когда у нас есть группирующие выражения с десятками строк ... мы в конечном итоге ... с множеством десятков строк в окончательном SQL-выражении.
Джавадба
Ответы:
233
Это означает группировать по первому столбцу независимо от того, как он называется. Вы можете сделать то же самое с ORDER BY.
Помимо группировки по имени поля, вы также можете группировать по порядковому номеру или положению поля в таблице. 1 соответствует первому полю (независимо от имени), 2 - второе и т. Д.
Это обычно не рекомендуется, если вы группируете что-то конкретное, поскольку структура таблицы / представления может измениться. Кроме того, может быть сложно быстро понять, что делает ваш SQL-запрос, если вы не запомнили поля таблицы.
Если вы возвращаете уникальный набор или быстро выполняете временный поиск, это хороший сокращенный синтаксис для сокращения набора текста. Если вы планируете снова выполнить запрос в какой-то момент, я бы рекомендовал заменить его, чтобы избежать путаницы и непредвиденных осложнений (из-за изменений схемы).
Это означает, что sql group by 1st column в вашем предложении select, мы всегда используем это GROUP BY 1вместе с ORDER BY 1, кроме того, вы также можете использовать это GROUP BY 1,2,3.., конечно, это удобно для нас, но вы должны обратить внимание на это условие, результат может быть не тем, что вы хотите, если кто-то изменил ваши столбцы выбора, и это не визуализируется
Он будет группироваться по положению столбца, которое вы ставите после предложения group by.
например, если вы запустите ' SELECT SALESMAN_NAME, SUM(SALES) FROM SALES GROUP BY 1', он будет сгруппирован по SALESMAN_NAME.
Это может привести к риску, если вы запустите ' Select *' и по какой-то причине пересоздаете таблицу со столбцами в другом порядке, это даст вам другой результат, чем вы ожидаете.
Ответы:
Это означает группировать по первому столбцу независимо от того, как он называется. Вы можете сделать то же самое с
ORDER BY
.источник
В приведенном выше запросе
GROUP BY 1
ссылается наfirst column in select statement
который естьaccount_id
.Вы также можете указать в
ORDER BY
.источник
Помимо группировки по имени поля, вы также можете группировать по порядковому номеру или положению поля в таблице. 1 соответствует первому полю (независимо от имени), 2 - второе и т. Д.
Это обычно не рекомендуется, если вы группируете что-то конкретное, поскольку структура таблицы / представления может измениться. Кроме того, может быть сложно быстро понять, что делает ваш SQL-запрос, если вы не запомнили поля таблицы.
Если вы возвращаете уникальный набор или быстро выполняете временный поиск, это хороший сокращенный синтаксис для сокращения набора текста. Если вы планируете снова выполнить запрос в какой-то момент, я бы рекомендовал заменить его, чтобы избежать путаницы и непредвиденных осложнений (из-за изменений схемы).
источник
Он будет сгруппирован по первому полю в предложении выбора
источник
Это означает, что sql group by 1st column в вашем предложении select, мы всегда используем это
GROUP BY 1
вместе сORDER BY 1
, кроме того, вы также можете использовать этоGROUP BY 1,2,3..
, конечно, это удобно для нас, но вы должны обратить внимание на это условие, результат может быть не тем, что вы хотите, если кто-то изменил ваши столбцы выбора, и это не визуализируетсяисточник
Он будет группироваться по положению столбца, которое вы ставите после предложения group by.
например, если вы запустите '
SELECT SALESMAN_NAME, SUM(SALES) FROM SALES GROUP BY 1
', он будет сгруппирован поSALESMAN_NAME
.Это может привести к риску, если вы запустите '
Select *
' и по какой-то причине пересоздаете таблицу со столбцами в другом порядке, это даст вам другой результат, чем вы ожидаете.источник