Упорядочение вывода по номеру столбца

Вместо имен столбца, вы можете использовать их порядковые номера для указания поля, используемого в упорядочении вывода. Эти номера могут ссылаться не на порядок столбцов в таблице, а на их порядок в выводе. Другими словами, поле упомянутое в предложении SELECT первым, для ORDER BY — это поле 1, независимо от того каким по порядку оно стоит в таблице. Например, вы можете использовать следующую команду чтобы увидеть определенные поля таблицы Продавцов, упорядоченными в порядке убывани к наименьшему значению комиссионных ( вывод показывается Рисунке 7.7 ):
SELECT sname, comm FROM Salespeople GROUP BY 2 DESC;

SQL Execution Log

(SELECT sname, comm FROM Salespeople ORDER BY 2 DESC;

sname
comm

Peel
0.17

Serres
0.13

Rifkin
0.15

Рисунок 7. 7: Упорядочение исполяьзующее номера Одна из основных целей этой возможности ORDER BY — дать вам возможность использовать GROUP BY со столбцами вывода также как и со столбцами таблицы. Столбцы производимые агрегатной функцией, константы, или выражения в предложении SELECT запроса, абсолютно пригодны для исполяьзования с GROUP BY, если они ссылаются к ним с помощью номера. Например, давайте сосчитаем порядки каждого из наших продавцов, и выведем результаты в убывающем порядке, как показано в Рисунке 7.8:
SELECT snum, COUNT ( DISTINCT onum ) FROM Orders GROUP BY snum ORDER BY 2 DESC;

SQL Execution Log

SELECT snum, odate, MAX (amt)
FROM Orders
GROUP BY snum
ORDER BY 2 DESC;

snum
 

1001
3

1002
3

1007
2

1003
1

1004
1

Рисунок 7.8: Упорядочение с помощью столбца вывода

В этом случае, вы должны использовать номер столбца, так как столбец вывода не имеет имени; и вы не должны использовать саму агрегатную функцию. Строго говоря по правилам ANSI SQL, следующее не будет работать, хотя некоторые системы и пренебрегают этим требованием:
SELECT snum, COUNT ( DISTINCT onum ) FROM Orders GROUP BY snum GROUP BY COUNT ОМ ( DISTINCT onum ) DESC;

Это будет отклонено большинством систем!
 

‹ Упорядочение агрегатных групп
Вверх
Упорядочение с помощью многочисленных столбцов ›

Айтистанция
Добавить комментарий