Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка? / 9 сообщений из 9, страница 1 из 1
05.04.2017, 08:59
    #39433289
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка?
Код: plsql
1.
2.
SELECT COUNT(*) FROM PROC_STAT
ORDER BY stat2 desc

вроде ж должна валиться

11.2
...
Рейтинг: 0 / 0
05.04.2017, 09:00
    #39433290
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка?
а так валится
Код: plsql
1.
2.
3.
4.
5.
SELECT COUNT(*), params  FROM PROC_STAT
GROUP BY params
ORDER BY stat2 desc

ORA-00979: выражение не является выражением GROUP BY
...
Рейтинг: 0 / 0
05.04.2017, 09:06
    #39433295
ORA__SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка?
andreymx
Код: plsql
1.
2.
SELECT COUNT(*) FROM PROC_STAT
ORDER BY stat2 desc

вроде ж должна валиться
11.2Одна строка - нет смысла сортировать
...
Рейтинг: 0 / 0
05.04.2017, 10:56
    #39433362
ORA__SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка?
ORA__SQLandreymx
Код: plsql
1.
2.
SELECT COUNT(*) FROM PROC_STAT
ORDER BY stat2 desc

вроде ж должна валиться
11.2Одна строка - нет смысла сортироватьУточню: так решил оптимизатор и забил на сортировку, поэтому до ошибки дело не дошло
...
Рейтинг: 0 / 0
05.04.2017, 11:32
    #39433386
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка?
ORA__SQLORA__SQLпропущено...
Одна строка - нет смысла сортироватьУточню: так решил оптимизатор и забил на сортировку, поэтому до ошибки дело не дошлоно ежели сортировать по несуществующему полю, ошибку валит

в общем, некрасивенько :)
...
Рейтинг: 0 / 0
05.04.2017, 12:53
    #39433440
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка?
andreymx,

Наличие этой бессмысленной конструкции может влиять на план тем не менее.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
create table t (id, name, constraint t_pk primary key (id)) as
select rownum, rownum from dual connect by rownum <= 3;

Table created.

set autot on expl
select count(*)
from t;

  COUNT(*)
----------
         3


Execution Plan
----------------------------------------------------------
Plan hash value: 56794325

-----------------------------------------------------------------
| Id  | Operation        | Name | Rows  | Cost (%CPU)| Time     |
-----------------------------------------------------------------
|   0 | SELECT STATEMENT |      |     1 |     1   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE  |      |     1 |            |          |
|   2 |   INDEX FULL SCAN| T_PK |     3 |     1   (0)| 00:00:01 |
-----------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement (level=2)

select count(*)
from t
order by name;

  COUNT(*)
----------
         3


Execution Plan
----------------------------------------------------------
Plan hash value: 2966233522

---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |      |     1 |    13 |     2   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE    |      |     1 |    13 |            |          |
|   2 |   TABLE ACCESS FULL| T    |     3 |    39 |     2   (0)| 00:00:01 |
---------------------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement (level=2)

...
Рейтинг: 0 / 0
05.04.2017, 13:48
    #39433469
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка?
У нас на 12 апдейт с селектом несуществуюего поле проходит в pl/sql без сообщения об ошибке
Код: plsql
1.
2.
3.
 UPDATE <table>
        SET  column1 = column_value
     WHERE an_id = (SELECT unexisting_column FROM a_view ..)
...
Рейтинг: 0 / 0
05.04.2017, 13:52
    #39433473
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка?
gpu,

Если его нет в a_view, то, скорее всего, оно в <table>.
...
Рейтинг: 0 / 0
05.04.2017, 14:29
    #39433506
MaximaXXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка?
AmKad,

или объявлен как переменная выше (в теле pl/sql)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / сортировка по полю, которого нет в запросе с агрегацией - почему не валится ошибка? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]