Скачиваний:
25
Добавлен:
01.04.2014
Размер:
761.34 Кб
Скачать

82 Понимание sql

______________________________________________________________________

CH 7

и мы, теперь, заставим группы размещаться в последовательности:

SELECT snum, odate, MAX (amt)

FROM Orders

GROUP BY snum, odate

GROUP BY snum;

Вывод показывается в Рисунке 7.6.

=============== SQL Execution Log ==============

| |

| SELECT snum, odate, MAX (amt) |

| FROM Orders |

| GROUP BY snum, odate |

| ORDER BY snum ; |

| =============================================== |

| snum odate amt |

| ----- ---------- -------- |

| 1001 10/06/1990 767.19 |

| 1001 10/05/1990 4723.00 |

| 1001 10/05/1990 9891.88 |

| 1002 10/06/1990 5160.45 |

| 1002 10/04/1990 75.75 |

| 1002 10/03/1990 1309.95 |

| 1003 10/04/1990 1713.23 |

| 1004 10/03/1990 1900.10 |

| 1007 10/03/1990 1098.16 |

| |

================================================

Рисунок 7. 6: Упорядочение с помощью группы

Так как мы не указывали на возрастание или убывание порядка,

возрастание используется по умолчанию.

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

Вместо имен столбца, вы можете использовать их порядковые номера для

указания поля используемого в упорядочении вывода. Эти номера могут

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

Другими словами, поле упомянутое в предложении SELECT первым, для

ORDER BY - это поле 1, независимо от того каким по порядку оно стоит в

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

увидеть определенные поля таблицы Продавцов, упорядоченными

ФОРМАТИРОВАНИЕ ВЫВОДА ЗАПРОСА 83

______________________________________________________________________

в порядке убывания к наименьшему значению комиссионных ( вывод

показывается Рисунке 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