Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
ChA. Если СУБД не поддерживает FULL OUTER JOIN, то уж where ... *=* ... должна поддерживать? Хотя, конечно, UNION ALL в этой задаче - единственно верное решение. А что лучше по VIEW, или по TEMPTABLE - зависит от конкретной СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 21:33 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
Если СУБД не поддерживает full outer join, то это не потому, что разработчики не смогли договориться о синтаксисе. А потому, что не разработали такую фичу. Поэтому врядли оракловский синтаксис *=* спасет пользователей Informix 7. К сожалению, Sybase IQ почему-то не понимает и Outer join on (1=0). так что дополненная и исправленная версия selecta будет (при условии что col1 положительно, что с ключами как правило и бывает) select isnull (t1.col1,t2.col1) col1, sum(isnull (t1.col2, t2.col2)) col2 from t1 full outer join t2 on(t1.col1 = -t2.col1) group by isnull (t1.col1,t2.col1) ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 21:45 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
vybegallo Прежде чем начинать раздачу призов и бонусов и требовать от других отсутствия синтаксических ошибок, желательно научится правильно формулировать задачу. Если Вы решили задать свой вопрос в Проектировании, а не на специализированном форуме, то принимайте ответы как есть. Кстати. Ваш вариант с CASE выдаст синтаксическую ошибку на СУБД, которые поддерживают только ANSI-SQL. Да и Ваш детский восторг в заглавном постинге по поводу решения элементарной задачи просто смешон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 21:51 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
vybegallo. *=* НЕ оракловский синтаксис. Вы бы почитали что-нибудь по SQL. MS SQL 6.5 поддерживал =, *=,=*,*=*, но не поддерживал никаких JOIN вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 21:56 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
Cat2vybegallo Прежде чем начинать раздачу призов и бонусов и требовать от других отсутствия синтаксических ошибок, желательно научится правильно формулировать задачу. Если Вы решили задать свой вопрос в Проектировании, а не на специализированном форуме, то принимайте ответы как есть. Кстати. Ваш вариант с CASE выдаст синтаксическую ошибку на СУБД, которые поддерживают только ANSI-SQL. Да и Ваш детский восторг в заглавном постинге по поводу решения элементарной задачи просто смешон. Какую часть предложения "Чем универсальней (в плане СУБД) тем лучше" вы не понимаете ? И какая из реальных СУБД (Oracle, MS SQL, Informix, DB2, Sybase, Mysql ) не понимает "case" ? Ну и увидеть "детский восторг" в начальном постинге - это хорошая, качественная трава. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 22:32 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
vybegalloПрежде чем обсуждать оптимальность, желательно написать запрос, не выдающий синтаксических ошибок.Если это претензия ко мне, то извините, что предложенный вариант не поняла IQ, с точки зрения ANSI вариант был синтаксически правильный. А еще IQ... :) Кстати, вариант все равно был с червоточинкой, приблизительно на подобных же данных, что и Ваш. vybegalloНу такая уж у меня попалась невменяемая СУБД, что select from (select) не понимает. Не она одна такая непонятливая, кстати - и Informix 7, и DB2 7.1 (насчет 8 не помню) тоже не понимают таких вариантов.Ну так CREATE VIEW они поддерживают ? Про select from (select) вообще речи нет, что Вы на этом варианте-то зациклились... vybegalloК сожалению, Sybase IQ почему-то не понимает и Outer join on (1=0). так что дополненная и исправленная версия selecta будет (при условии что col1 положительно, что с ключами как правило и бывает)Тупой он какой-то, этот IQ :) Тогда уж так Код: plaintext 1. 2. 3. Cat2Спокойно :) Не надо шума, а вот обещанный любопытный SELECT так и не был представлен широкой публике. Или действительно лучше создать новый топик ? Хотя есть подозрения, что перлы будут завалены массой флуда... P.S. Кстати, сталкивался с заменой UNION на FULL JOIN и наоборот, даже показалось, что это возможно всегда, пока не столкнулся с ситуацией, где эквивалентная замена оказалась невозможной. P.P.S. И все-таки сложно представить СУБД, где реализация FULL JOIN оптимальнее UNION... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 23:40 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
ChA Тупой он какой-то, этот IQ :) Тогда уж так Код: plaintext 1. 2. 3. "Папа, ви будете смеяться, но ваша дочь опять умерла !" (С) isnull (t1.col1,t2.col1) col1, sum(isnull (t1.col2, t2.col2)) col2 from t1 full outer join t2 on(t1.col1 = -t1.col1 and t1.col1 = 0) group by isnull (t1.col1,t2.col1) ; col1 col2 ----------- ---------------------------- (0 rows affected) ChA P.S. Кстати, сталкивался с заменой UNION на FULL JOIN и наоборот, даже показалось, что это возможно всегда, пока не столкнулся с ситуацией, где эквивалентная замена оказалась невозможной. Пример ? ChAP.P.S. И все-таки сложно представить СУБД, где реализация FULL JOIN оптимальнее UNION... Имейте терпение, Штубинг - скоро дойдет дело и до планов ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 00:44 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
vybegallo"Папа, ви будете смеяться, но ваша дочь опять умерла !" (С) ... (0 rows affected)Нда, это уже диагноз. Как-то своеобразно IQ понимает FULL JOIN или у него оптимизатор больной... Хорошо, а так Код: plaintext 1. 2. 3. vybegalloПример ?Давно было, года два-три назад, сейчас даже и не припомню, если только случайно... vybegalloдойдет дело и до планов...Да какие уж тут планы :) И вообще, здесь, скорее, уже статистика, ЦПУ, сканы, риды и прочая мутотень... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 01:32 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
ChA vybegallo"Папа, ви будете смеяться, но ваша дочь опять умерла !" (С) ... (0 rows affected)Нда, это уже диагноз. Как-то своеобразно IQ понимает FULL JOIN или у него оптимизатор больной... Хорошо, а так Код: plaintext 1. 2. 3. vybegalloПример ?Давно было, года два-три назад, сейчас даже и не припомню, если только случайно... vybegalloдойдет дело и до планов...Да какие уж тут планы :) И вообще, здесь, скорее, уже статистика, ЦПУ, сканы, риды и прочая мутотень... Ну, как и ожидалось, вариант t1.col1=t1.col1+1 тоже не сработал. Я думаю, оно в условии Join понимает только столбцы и только соединяемых таблиц. Вдобавок пришлось от ключа bigint перейти к ключу char(32) и вариант с минусом тоже на прокатил. Перешел на view. Вообще, этот Sybase IQ - забавная штука. На сложных запросах, говорят, летает как реактивный, при достаточно примитивном не cost-based оптимизаторе. Падает в среднем раз в день. Книги отсутствуют как класс. Внутренняя структура страниц и индексов нигде не описана. Сертификатов не выдают :-). Индексов штук 6, и можно строить несколько индексов разных типоов на одной колонке. Данные хранит сразу проиндексированными и в упакованном виде, обещают что даже при всех построенных индексах занимаемое место на диске за счет упаковки не превышает размера чистых данных. В общем, сплошная экзотика :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 21:02 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
vybegalloВ общем, сплошная экзотикаМожет в морг ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 23:22 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
Ну, зачем же сразу в морг. Если оно запрос выполняет за 2 часа, на который DB2 потратило 2 дня - то можно и потерпеть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2005, 00:49 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
vybegalloЕсли оно запрос выполняет за 2 часа, на который DB2 потратило 2 дня - то можно и потерпеть...Сугубая заточка под OLAP ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2005, 01:35 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
Да. Вплоть до монопольного доступа на запись к таблице. Звездообразная схема поддерживается автоматически - указываешь для столбца число возможных значений (cardinality) и после чего хоть char(300) его описывай - хранить будет только 1-2-4 байта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2005, 05:28 |
|
||
|
Суммирование таблиц - задачка по SQL
|
|||
|---|---|---|---|
|
#18+
vybegallo. Уже не понимаю смысла топика. Есть проблемы - в соответсвующий форум. Но скорее тут попытка показать свою крутизну, которой на самом деле не оказалось. Мы так и не увидели Вашего супер-пупер решения задачи для всех sql-серверов и народов. Если я его не увижу в течении суток, то топик будет закрыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2005, 21:23 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33106175&tid=1545818]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 342ms |

| 0 / 0 |
