Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
ASA 5.0 Есть таблица с 2 полями kod (integer), price(numeric) Возможно ли сгруппировать строки по полю kod так чтобы в одной группе sum(price) <= 500 одним запросом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 17:08 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
bor__bor пишет: > Есть таблица с 2 полями kod (integer), price(numeric) > Возможно ли сгруппировать строки по полю kod так чтобы в одной группе > sum(price) <= 500 > одним запросом SELECT kod, sum(price) FROM table_name HAVING sum(price) <= 500 Рекомендую почитать Введение в SQL Грабера. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 17:21 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
Мне не нужно отбирать строки у которых sum(price) < 500 мне нужно сгруппировать строки с sum(price) < 500 и для одинаковых значений kod Например kod price 1 200 1 200 1 200 2 300 3 700 В результате запроса должно получится kod sum(price) 1 400 1 200 2 300 3 700 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 17:32 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
SELECT kod, sum(price) FROM table_name HAVING sum(price) <= 500 и если уж использовать этот having то в этот запросе вообщето поле kod должно быть в group by ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 17:39 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
bor__bor пишет: > и если уж использовать этот having то в этот запросе вообщето поле kod > должно быть в group by Разумеется. Поторопился. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 17:54 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
bor__bor пишет: > Мне не нужно отбирать строки у которых sum(price) < 500 > мне нужно сгруппировать строки с sum(price) < 500 и для одинаковых > значений kod Ну тогда скорее всего процедура с курсором и временными таблицами. Навскидку приемлемого решения в виде запроса не вижу. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 18:12 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
bor__borМне не нужно отбирать строки у которых sum(price) < 500 мне нужно сгруппировать строки с sum(price) < 500 и для одинаковых значений kodНет, одним запросом это сделать нереально. Даже двумя нереально :) Это одна из типичных транспортных задач. Возьми учебник по линейному программированию, там будет описание нескольких алгоритмов решения. Самое простое - сделать временную табличку а потом циклом бежать по курсору и заполнять эту табличку, ну что-то вроде такого: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 18:22 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
Мне казалось, что это из области "running total", вроде через "windows functions" (over in Oracle, analytic functions в ASA есть, или эта версия старовата ?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 22:16 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
ZhoraМне казалось, что это из области "running total", вроде через "windows functions" (over in Oracle, analytic functions в ASA есть, или эта версия старовата ?).Вообще-то аналитические функции здесь вряд-ли помогут. Во всяком случае не могу придумать как их заставить делать необходимую сортировку. Но в ASA5 действительно только sum/count/avg были. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 22:25 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
>Самое простое - сделать временную табличку а потом циклом бежать по >курсору и заполнять эту табличку, ну что-то вроде такого: Спасибо за сообщения .... я уже собственно так и сделал... А возможно ли в ASA (не важно какой версии) такие конструкции запроса SElect .... from (Select....) или чтото подобное...т.е возможно ли делать выбор не из связки таблиц а из результируюшего набора вложенного запроса. В MSS это кажется возможно Я собственно когда задавал вопрос надеялся на ответ подобного рода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 10:21 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
bor__bor пишет: > А возможно ли в ASA (не важно какой версии) такие конструкции запроса > > SElect .... from (Select....) Да, как минимум, с 5.5 (более старых версий у меня нет). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 10:25 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
Написал такой запрос Select ed_index from (Select ed_index,ed_name from editions); Ругнулась Line: 2 SQLSTATE = 37000 [Sybase][ODBC Driver]Syntax error: near 'Select' in ...ed_index from ([Select] ed_index,ed_name... Версия как раз ASA 5.5 В чем ту может быть проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 10:42 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
как минимум подзапросу алиас нужно указывать: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 10:51 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
Результат выполнения тот же --------------------------- Database Administration --------------------------- Line: 5 SQLSTATE = 37000 [Sybase][ODBC Driver]Syntax error: near 'SELECT' in ....ed_index FROM ( [SELECT] ed_index,ed_name... Continue? --------------------------- Да Нет --------------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 10:58 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
Dim2000 пишет: >> А возможно ли в ASA (не важно какой версии) такие конструкции запроса >> SElect .... from (Select....) > Да, как минимум, с 5.5 (более старых версий у меня нет). Уверен? Нет под рукой сейчас установленного 5.5, но по моему это появилось не раньше 6 или даже 7 Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 12:14 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
Александр Гoлдун пишет: > Уверен? Нет под рукой сейчас установленного 5.5, но по моему это > появилось не раньше 6 или даже 7 Мне проще согласиться , т.к. проверять не на чем, я с 5.5 уже года полтора не работаю... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 12:47 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
Действительно на 7 и 8 версии работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 13:14 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
Ну вы, блин, даете!!! В 6-ке вложенные запросы работают. И ответ мог бы звучать так (на 5.5. не уверен): select * from table_name as t1 where exists(SELECT 1 FROM table_name as t2 where t1.kod=t2.kod GROUP BY kod HAVING sum(price) <= 500) Ну или что-то типа того. OLAP-функции здесь решили бы задачу как раз без вложенного селекта, но они пошли с 9-ки: (Пишу на память) select kod,price,sum(price) over (partiotion by kod) as sum_group from table where sum_group<=500 Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 23:22 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
iLLer Ну вы, блин, даете!!! В 6-ке вложенные запросы работают. И ответ мог бы звучать так (на 5.5. не уверен):И? Не работает ни один из предложеных вариантов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 23:41 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
iLLer пишет: > В 6-ке вложенные запросы работают. не путай вложенные запросы и derived tables, т.е. select from select. Вложенные запросы, насколько помню, и в 5.0 работали. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 23:42 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
Вопрос поставлен некорректно. Мне не нужно отбирать строки у которых sum(price) < 500 мне нужно сгруппировать строки с sum(price) < 500 и для одинаковых значений kod Например kod price 1 200 1 200 1 200 2 300 3 700 В результате запроса должно получится kod sum(price) 1 400 1 200 2 300 3 700 Судя по примеру, который приведен вопрошающим, приведенный вопрос означает совершенно другие действия. Я поторопился, и для приведенных примеров на самом деле OLAPа может не хватить, не говоря об обычных ф-ях. ХП с курсором помогут автору. P.S.: Причем для получения однозначного результата не хватает данных. Либо скажите, что должно получиться в этом случае: kod price 1 100 1 200 1 100 1 200 2 300 .... Ведь, как известно, у строк номеров нет, и их положение в таблице не взаимосвязано. Поэтому на выходе может получиться несколько наборов, удовлетворяющих вопросу. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2006, 14:19 |
|
||
|
Группирование строк
|
|||
|---|---|---|---|
|
#18+
iLLerСудя по примеру, который приведен вопрошающим, приведенный вопрос означает совершенно другие действия.Для того-то исходную и ожидаемую таблицу обычно и показывают чтобы избавится от разночтений. iLLerВедь, как известно, у строк номеров нет, и их положение в таблице не взаимосвязано. Поэтому на выходе может получиться несколько наборов, удовлетворяющих вопросу. Совершенно верно. Ты никогда не возился с транспортными задачами? Множество, удовлетворяющих условию, решений для них норма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 16:40 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33577788&tid=2013010]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 353ms |

| 0 / 0 |
