|
|
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
Пример: select * from test 1 Moscow001 aaa 2 Moscow001 aab 3 London002 aac 4 London002 aad 5 Moscow001 aaa 6 Moscow001 aab 7 London002 aaa select names,numbers from test group by names,numbers aaa London002 aaa Moscow001 aab Moscow001 aac London002 aad London002 select distinct(names),numbers from test aaa London002 aaa Moscow001 aab Moscow001 aac London002 aad London002 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2009, 22:51 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
gjkmpjdfntkm, Казалось бы 2 одинаковых результата. ВОпрос, имеет ли возможность group by какие-то приемущества/недостатки по сравнению с distinct в запросах? (учет использования агр.функций не писать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2009, 22:53 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
Нет, смотрите план выполнения запроса. Баян С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 08:29 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
gjkmpjdfntkm пишет: Тут всё просто. Если вам нужно использовать агрегирующие функции, используйте GROUP BY. Если не нужны -- DISTINCT. GROUP BY без агрегирующих функций по идее может и не работать. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 10:01 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
MasterZiv gjkmpjdfntkm пишет: Тут всё просто. Если вам нужно использовать агрегирующие функции, используйте GROUP BY. Если не нужны -- DISTINCT. GROUP BY без агрегирующих функций по идее может и не работать. с чего бы ему не работать то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 10:11 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
Возможны СУБД-специфичные различия. Например, в MySQL GROUP BY гарантирует сортировку результата, а DISTINCT - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 13:37 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
miksoftВозможны СУБД-специфичные различия. Например, в MySQL GROUP BY гарантирует сортировку результата, а DISTINCT - нет.Возможно. Но я бы для сортировки использовал прямую инструкцию, предназначенную конкретно для этого: ORDER BY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 14:39 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
miksoftВозможны СУБД-специфичные различия. Например, в MySQL GROUP BY гарантирует сортировку результата, а DISTINCT - нет. Djn 'nj vf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 14:41 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
АнатоЛойmiksoftВозможны СУБД-специфичные различия. Например, в MySQL GROUP BY гарантирует сортировку результата, а DISTINCT - нет. Djn 'nj vf Пардон, но это настолько специфичные различия, что я на них бы никогда не надеялся (не использовал, то бишь...) только ORDER BY гарантирует сортировку (если нет ошибок в СУБД :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 14:42 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
Почему спрашиваю, выполняется запрос: авторselect Devicepool.name DevicePool,Device.name devicename,Device.description,DeviceNumplanMap.display,DeviceNumplanMap.label,NumPlan.dnorpattern intnumber,DeviceNumplanMap.e164mask extnumber from devicepool,device,DeviceNumplanMap,NumPlan where device.fkdevicepool=devicepool.pkid and Device.pkid=DeviceNumplanMap.fkDevice and NumPlan.pkid=DeviceNumplanMap.fkNumPlan and Device.name like 'SEP%' group by Device.name,Devicepool.name,Device.description,DeviceNumplanMap.display,DeviceNumplanMap.label,NumPlan.dnorpattern,DeviceNumplanMap.e164mask order by devicepool,intnumber который выдает одинаковые Device.name, результат повторяющихся данных SEP%: Oleg SEP001646E Save_DP Ivan 5939 5939 14 14 94(13) Ivan SEP001BD4A SaveNo_DP Ivan 5859 5859 10 10 94(17) Ivan SEP001BD4A SaveNo_DP Ivan 5939 5939 14 14 94(13) пробовал делать авторselect distinct Device.name devicename,Devicepool.name DevicePool,Device.description,DeviceNumplanMap.display,DeviceNumplanMap.label,NumPlan.dnorpattern intnumber,DeviceNumplanMap.e164mask extnumber from devicepool,device,DeviceNumplanMap,NumPlan where device.fkdevicepool=devicepool.pkid and Device.pkid=DeviceNumplanMap.fkDevice and NumPlan.pkid=DeviceNumplanMap.fkNumPlan and Device.name like 'SEP%' /*group by Device.name,Devicepool.name,Device.description,DeviceNumplanMap.display,DeviceNumplanMap.label,NumPlan.dnorpattern,DeviceNumplanMap.e164mask */ order by devicepool,intnumber записи Device.name также повторяются. Как мне сделать, чтобы записи с подобными одинаковыми полями не повторялись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 16:52 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
gjkmpjdfntkmПочему спрашиваю, выполняется запрос:Вот с этого и надо было начинать, а не морочить голову. gjkmpjdfntkmКак мне сделать, чтобы записи с подобными одинаковыми полями не повторялись?а что должно быть в остальных полях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 18:04 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
miksoft, Пример формата данных <devicename>SEP001B0</devicename> <devicepool>Save_DP</devicepool> <description>Ivan </description> <display>Ivan </display> <label>94(17)</label> <intnumber>10</intnumber> <extnumber>5859</extnumber> При выборке значение в <devicename> не должны повторяться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 18:20 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
gjkmpjdfntkm, схема базы в самом конце http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/datadict/6_1_1/dd_611.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 18:23 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
Не хотите отвечать на вопросы - пожалуйста, вот вам вариант: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 18:23 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
miksoft, поле с SEP% должно быть уникальным, все остальные записи могу быть как различными так и одинаковыми между собой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 18:25 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
miksoft, В примере я привел, что авторOleg SEP001646E Save_DP Ivan 5939 5939 14 14 94(13) Ivan SEP001BD4A SaveNo_DP Ivan 5859 5859 10 10 94(17) Ivan SEP001BD4A SaveNo_DP Ivan 5939 5939 14 14 94(13) что поле SEP001BD4A повторяется 2 раза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 18:26 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
gjkmpjdfntkmmiksoft, поле с SEP% должно быть уникальным, все остальные записи могу быть как различными так и одинаковыми между собойвы записи с полями не путаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 18:32 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
gjkmpjdfntkmmiksoft, В примере я привел, что авторOleg SEP001646E Save_DP Ivan 5939 5939 14 14 94(13) Ivan SEP001BD4A SaveNo_DP Ivan 5859 5859 10 10 94(17) Ivan SEP001BD4A SaveNo_DP Ivan 5939 5939 14 14 94(13) что поле SEP001BD4A повторяется 2 разаНу и? Мой вариант выведет Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 18:35 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
miksoft, а остальные таблицы??? вы смотрите только одно поле, а я привел запрос с множеством полей в разных таблицах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 18:45 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
gjkmpjdfntkmmiksoft, а остальные таблицы??? вы смотрите только одно поле, а я привел запрос с множеством полей в разных таблицаха что должно быть в других полях - вы так и не ответили. вы даже не привели пример желаемого результата для вашего-же примера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 20:34 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
gjkmpjdfntkmgjkmpjdfntkm, Казалось бы 2 одинаковых результата. ВОпрос, имеет ли возможность group by какие-то приемущества/недостатки по сравнению с distinct в запросах? (учет использования агр.функций не писать) Наверное, имеет недостатки использования не по назначению. Например: 1) Логический аспект: вместо того чтобы спросить выбрать только уникальные записи, спрашивается сгруппировать записи по полям, используя дополнительное знание о том, что тада они будут уникальными. Не говоря уже о том, что кто-то встретив такое может поиметь подозрение об ошибке писавшего: забыл дописать групповую ф-ю? И должен будет тратить время на проверку такового подозрения. Т.е. логическое усложнение запроса. 2) Если полей много, то очевидно, что выражение group by для извлечения уникальных записей сложнее. А стилевые соображения предполагают придерживаться одинакового подходжа во всех случаях. Синтаксическое усложнение запроса, дополнительные риски ухудшения стиля кода приложения. Все это несет риски удорожания и для разработки приложения, и тем более для сопровождения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 23:35 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
vadiminfoзабыл дописать групповую ф-ю?А, может, наоборот, приготовил фундамент для вероятного, с его точки зрения, добавления этой функции. vadiminfoЕсли полей много, то очевидно, что выражение group by для извлечения уникальных записей сложнее.Совершенно не очевидно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2009, 23:50 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
miksoft, Желаемый результат: авторOleg SEP001646E Save_DP Ivan 5939 5939 14 14 94(13) Ivan SEP001BD4A SaveNo_DP Ivan 5859 5859 10 10 94(17) но получаю автор Oleg SEP001646E Save_DP Ivan 5939 5939 14 14 94(13) Ivan SEP001BD4A SaveNo_DP Ivan 5859 5859 10 10 94(17) Ivan SEP001BD4A SaveNo_DP Ivan 5939 5939 14 14 94(13) схема базы в аттаче ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 10:52 |
|
||
|
group by vs distinct
|
|||
|---|---|---|---|
|
#18+
gjkmpjdfntkmmiksoft, Желаемый результат: авторOleg SEP001646E Save_DP Ivan 5939 5939 14 14 94(13) Ivan SEP001BD4A SaveNo_DP Ivan 5859 5859 10 10 94(17) но получаю автор Oleg SEP001646E Save_DP Ivan 5939 5939 14 14 94(13) Ivan SEP001BD4A SaveNo_DP Ivan 5859 5859 10 10 94(17) Ivan SEP001BD4A SaveNo_DP Ivan 5939 5939 14 14 94(13) А по какому принципу в последних полях были выбраны значения "5859 5859 10 10 94(17)" ? Кстати, а СУБД какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 12:51 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36126305&tid=1543120]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 489ms |

| 0 / 0 |
