Форум: "Начинающим";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];
ВнизГруппировка в таблице с текстовыми полями Найти похожие ветки
← →
Алексей_73 (2007-06-20 09:42) [0]Здравствуйте, уважаемые Мастера!
Имеется таблица из двух строк с одинаковыми текстовыми данными кроме одного поля, в одном поле текст разный.
Подскажите, пожалуйста, как выполнить SQL-запрос с группировкой. С цифровыми данными понятно, простой запрос типа такого Select field1, field2, field3, sum(field4), field5 from table_name group by field1, field2, field3, field5, а как сделать SQL-запрос когда поле field4 имеет строковый тип?
← →
Johnmen © (2007-06-20 10:13) [1]ПисАть хранимую процедуру...
← →
sniknik © (2007-06-20 10:36) [2]> Имеется таблица из двух строк с одинаковыми текстовыми данными кроме одного поля, в одном поле текст разный.
???
оригинально, всего 2 строки, во всех текст одинаковый, а в одном разный... 2-1=1 т.е. у тебя получается 2 уникальные строки с уникальным текстом. а нужна ли тогда группировка вообще?
← →
Desdechado © (2007-06-20 10:53) [3]> С цифровыми данными понятно, sum(field4)
> как сделать SQL-запрос когда поле field4 имеет строковый тип?
Оригинально. И что ты там суммировать хочешь?
← →
Алексей_73 (2007-06-20 11:33) [4]Таблица из двух сток -э то для ясности проблемы простейший пример
В реальной базе, конечно, много строк.
А нужно для формирования отчета, да и вообще интересно, как это делается
← →
Johnmen © (2007-06-20 11:39) [5]Какая связь между конкатенецией строк и построением отчета?
← →
Sergey13 © (2007-06-20 11:51) [6]> [4] Алексей_73 (20.06.07 11:33)
> это для ясности проблемы
Это ты здорово прояснил. 8-)
Чего надо то? Конкретно.
← →
sniknik © (2007-06-20 12:21) [7]> В реальной базе, конечно, много строк.
и в этой реальной базе есть поле типа текст(нехилое наверное) которое в большинстве своем повторяется? (иначе зачем по нему группировать)
про нормализацию чтонибудь слышал? в нормальном варианте у тебя бы должно быть 2 таблицы, в одной, справочной должно быть список этих текстовых полей (их вариантов) в единственном экземпляре каждый, а в основной только ссылки на эти поля справочника (столько сколько нужно, но повторяющиеся ссылаются на одно поле)...
вот. если бы было по правильному, то группировку пришлось бы делать по числовому полю (ссылке на текст). это бы и проблем уменьшило (нет нужды в извращенной группировке), и скорости работы с этой таблицей добавило, и размер уменьшило...
(если я конечно правильно угадал твою ситуацию... вон у Johnmen-а другая интерпретация. ты бы прояснил обстановку чтоли.)
> да и вообще интересно, как это делается
реально так не делается, этого стараются всеми силами избежать.
← →
Johnmen © (2007-06-20 12:45) [8]
> sniknik © (20.06.07 12:21) [7]
> > В реальной базе, конечно, много строк.и в этой реальной
> базе есть поле типа текст(нехилое наверное) которое в большинстве
> своем повторяется? (иначе зачем по нему группировать)
Если бы у него оно было именно "текстовое", то группировку он по нему не сделал бы...
← →
sniknik © (2007-06-20 13:33) [9]ну я так понял, что он и не сделал, потому и вопрос, что хочется, а не может...
← →
Грициан (2007-06-20 15:33) [10]Взять FB 2.1 или дятла, там есть необходимая тебе агрегатная функция LIST
ЗЫ. За использование IB 6.x нужно расстреливать
← →
Алексей_73 (2007-06-21 07:28) [11]Большое спасибо всем за помощь
← →
Anatoly Podgoretsky © (2007-06-21 09:32) [12]Да у него просто числа записаны в строковое поле :-)
← →
Johnmen © (2007-06-21 10:07) [13]
> Anatoly Podgoretsky © (21.06.07 09:32) [12]
> Да у него просто числа записаны в строковое поле :-)
Глубоко! :)
Во интересно получится, когда он LIST применит... :)))
← →
Desdechado © (2007-06-21 11:08) [14]> у него просто числа записаны в строковое поле
тады CAST
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.041 c