Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / использование агрегатных функций в SELECT / 13 сообщений из 13, страница 1 из 1
27.05.2014, 15:32:42
    #38653463
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
Всем привет!
В чем проблема здесь?:

Код: plsql
1.
2.
3.
4.
5.
 select s.id, max(s.amount) from table1 s
       where s.xxxxxxx = new.yyyyyy
         and s.fffffffff = :dddddd
    order by s.id
    into :table1_id, :old_amount;



Текс ошибки:

Код: html
1.
2.
3.
4.
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).



Как вообше используются агрегатных функций?
...
Рейтинг: 0 / 0
27.05.2014, 15:34:51
    #38653468
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
Alimkulov,

в тексте ошибки чёрным по белому написано не хватает GROUP BY
...
Рейтинг: 0 / 0
27.05.2014, 15:36:28
    #38653470
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
Симонов ДенисAlimkulov,

в тексте ошибки чёрным по белому написано не хватает GROUP BY

Как здесь поставит group by, и зачем это?
...
Рейтинг: 0 / 0
27.05.2014, 15:41:43
    #38653480
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
AlimkulovКак здесь поставит group by, и зачем это?
прочитай что-нибудь про агрегатные функции.
group by - группировка
order by сортировка

группировка пишется так
Код: sql
1.
2.
3.
select s.id, max(s.amount) from table1 s
...
group by s.id


и -это не сортировка.
...
Рейтинг: 0 / 0
27.05.2014, 15:48:31
    #38653491
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
kdvAlimkulovКак здесь поставит group by, и зачем это?
прочитай что-нибудь про агрегатные функции.
group by - группировка
order by сортировка

группировка пишется так
Код: sql
1.
2.
3.
select s.id, max(s.amount) from table1 s
...
group by s.id


и -это не сортировка.

Здесь мне группировка не нужна! Мне нужен id и максимальное количество amount из таблицы table1.
Что здесь объязательно поставить группировака?
Ожидаемы резултат id = 10, max(amount) = 500. И всё! Зачем сдесь группировака вообще?
...
Рейтинг: 0 / 0
27.05.2014, 15:52:49
    #38653506
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
Alimkulov
Ожидаемы резултат id = 10, max(amount) = 500. И всё! Зачем сдесь группировака вообще?
и что ожидается всегда одна запись????
...
Рейтинг: 0 / 0
27.05.2014, 15:53:35
    #38653508
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
AlimkulovЧто здесь объязательно поставить группировака?да.

Русский язык не родной?
...
Рейтинг: 0 / 0
27.05.2014, 15:58:29
    #38653518
Граур Станислав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
AlimkulovЗдесь мне группировка не нужна! Мне нужен id и максимальное количество amount из таблицы table1.
Что здесь объязательно поставить группировака?
Ожидаемы резултат id = 10, max(amount) = 500. И всё! Зачем сдесь группировака вообще?

Таков синтаксис.

Так не быстрее будет? Если конечно еще и индексы включить.

select first 1 s.id, s.amount from table1 s
where s.xxxxxxx = new.yyyyyy
and s.fffffffff = :dddddd
order by s.amount desc, s.id desc
into :table1_id, :old_amount;
...
Рейтинг: 0 / 0
27.05.2014, 15:58:34
    #38653519
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
Ivan_Pisarevsky,

Да Вы правы! Мне Русский язык не радной.
...
Рейтинг: 0 / 0
27.05.2014, 16:00:45
    #38653523
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
Граур Станислав,

Спасибо Вам, Вы написали то, что я искал!
...
Рейтинг: 0 / 0
27.05.2014, 16:05:23
    #38653533
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
AlimkulovЗдесь мне группировка не нужна!
Здесь и агрегатные функции не нужны тебе. Получай первую запись из списка,
отсортированного по убыванию amount и будет тебе счастье.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.05.2014, 16:07:18
    #38653536
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
Dimitry Sibiryakov,

Да конечно! Так и зделал.
...
Рейтинг: 0 / 0
27.05.2014, 16:09:00
    #38653540
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование агрегатных функций в SELECT
Спасибо всем! Я все понял. Вопрос закрыт.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / использование агрегатных функций в SELECT / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]