Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите создать запрос!
|
|||
|---|---|---|---|
|
#18+
Есть таблица: id........type........value --------------------------------- 12......Street..........Gagarina 12......City.............Kiev 12......Region.........Good 14......Street..........Volya 14......City.............Riga 3.......Street..........Duma 3.......City.............London 3.......Square.........800 3.......Rooms..........7 3.......Price............3000 Нужно ее как-то "транспонировать" в: id.....Street........City.......Region.......Square.......Rooms......Price ----------------------------------------------------------------- 12...Gagarina......Kiev.......Good.............-................-...........- 14...Volya..........Riga.........-..............- .................- ...........- 3.....Duma.........London......- .............800..............7.........3000 Наверное, несложный вопрос, но все-таки прошу ответить! Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 19:18 |
|
||
|
Помогите создать запрос!
|
|||
|---|---|---|---|
|
#18+
Вопрос сложный. :) Наверное, в SQL такого сделать нельзя. Если можно, то мне тоже хотелось бы знать как. :) Возможные решения: динамическое формирование конечного запроса на основании данных предварительного; анализ результатов запроса на клиенте, создание и заполнение таблицы с нужной структурой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 19:32 |
|
||
|
Помогите создать запрос!
|
|||
|---|---|---|---|
|
#18+
найдите в сети книгу SQL Hacks (By Andrew Cumming, Gordon Russell, из-во O'Reilly, 2006) - там в 7 главе есть очень похожие запросы с помощью join. -- Солнце встанет непременно! jabber id: marx [.at.] jabber [.dot.] ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 20:49 |
|
||
|
Помогите создать запрос!
|
|||
|---|---|---|---|
|
#18+
кажется в CONTRIBS есть что-то на ету тему, если нет, то если "TYPE" конечное, то думаю где-то так: ......... declare r <ваш_тип>; begin for i in SELECT DISTINCT id FROM t loop for j in select * from t where id = i.id loop if j.type = 'Street' then r.Street := j.value; end if; ...... ...... ...... end loop; return next r; end loop; ................ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 21:58 |
|
||
|
Помогите создать запрос!
|
|||
|---|---|---|---|
|
#18+
Если количество атрибутов (уникальных значений поля TYPE) невелико, то такой запрос очень легко (я бы даже сказал: элементарно) получается при помощи CASE в select-листе + итоговая группировка по ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 05:04 |
|
||
|
Помогите создать запрос!
|
|||
|---|---|---|---|
|
#18+
Тынц - иллюстрация идеи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 05:17 |
|
||
|
Помогите создать запрос!
|
|||
|---|---|---|---|
|
#18+
Бабичев СергейЕсли количество атрибутов (уникальных значений поля TYPE) невелико, то такой запрос очень легко (я бы даже сказал: элементарно) получается при помощи CASE в select-листе + итоговая группировка по ID. А если количество атрибутов ~30-50 а записей (ID) ~ около 50 000? Будет ли быстро работать? Нужен вывод таблицы за время порядка 1 секунды. Я понимаю, что это еще зависит от многих факторов (индексов, структуры базы...), но все-же, что можете сказать по этому поводу? PostgreSQL 8.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 10:05 |
|
||
|
Помогите создать запрос!
|
|||
|---|---|---|---|
|
#18+
денормализировать базу => создать доп. таблицу (Т2) в нужном формате, совать туда данные указанными методами из основной таблици (Т1), а выборку (из соображений скорости ответа) брать из вспомогательной таблицы (Т2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 11:21 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34280173&tid=2005764]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
64ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 355ms |

| 0 / 0 |
