Может ли кто-нибудь, пожалуйста, скажите мне, как поток записей происходил в этом запросе в соответствии с сгенерированным выводом - PullRequest
0 голосов
/ 13 февраля 2009
SQL> select * from employee;

ID   FIRST_NAME LAST_NAME  START_DAT END_DATE      SALARY CITY       DESCRIPTION
---- ---------- ---------- --------- --------- ---------- ---------- ---------------
03   Jason      Martin     25-JUL-96 25-JUL-06    1234.56 Toronto    Programmer
03   Alison     Mathews    21-MAR-76 21-FEB-86   13323.56 Vancouver  Tester
04   James      Smith      12-DEC-78 15-MAR-90   52358.24 Vancouver  Tester
05   Celia      Rice       24-OCT-82 21-APR-99    2344.78 Vancouver  Manager
03   Linda      Green      30-JUL-87 04-JAN-96    4322.78 New York   Tester
03   David      Larry      31-DEC-90 12-FEB-98    7897.78 New York   Manager

6 rows selected.

SQL> select id,first_name
  2  from employee
  3  group by id, first_name;

ID   FIRST_NAME
---- ----------
03   Linda
03   Jason
04   James
05   Celia
03   David
03   Alison

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

1 Ответ

1 голос
/ 13 февраля 2009

Не уверен, что правильно понял вопрос, но попробую ответить.

Ваш второй запрос:

select id,first_name
from employee
group by id,first_name;

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

Порядок получения результатов внутренне зависит от того, как Oracle решила выполнить запрос (хэш-группа по или сортировка по группам) и, возможно, где данные физически хранились на диске. Это может меняться изо дня в день, версия Oracle на версию Oracle и т. Д.

Если вы хотите, чтобы они вышли в определенном порядке, вы должны использовать ORDER BY

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...