Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL и написание функций - по простому примеру / 18 сообщений из 18, страница 1 из 1
19.11.2014, 10:20:29
    #38810390
andrei90g
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
Здравствуйте!
Прошу помочь мне с написанием Mysql функции. С гуглом я научился примитивно сделать функцию вида:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE FUNCTION my_add (
    a DOUBLE,
    b DOUBLE
)
RETURNS DOUBLE
BEGIN

    IF a IS NULL THEN
        SET a = 0;
    END IF;

    IF b IS NULL THEN
        SET b = 0;
    END IF;

    RETURN (a + b);
END$$



результат суммирование двух значений seiq.ru/screen_andrei90g/...
при
Код: sql
1.
SELECT o,h,my_add(o,h) FROM `table` WHERE 1



А вот как написать функцию, чтобы брала значение 1 столбца и высчитывала их всех (или сгруппированные)... Допустим как работает встроенная функция SUM(h) – перебирает все строки – и суммирует...
Я правда по другому немного считать буду, но прошу показать пример, кто знает как написать... Гугл перелопатил. Всё в сложных примерах, поэтому кто знает и может помочь – прошу написать функцию SUM – а дальше пойму как уже эта концепция работает – по перебору всех строк (или сгруппированных в запросе) и выдаче результата
Заранее благодарю..
​Очень надеюсь на Вашу помощь....

PS - просто можно долго разбираться в мануалах, но на примере - быстрее и понятнее... "Старички" - не хайте, умоляю) Я не начинающий. 4 года стажа, просто с функциями щас столкнулся и лажа
...
Рейтинг: 0 / 0
19.11.2014, 10:25:41
    #38810403
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
Надо не Гугл мучать, а документацию читать. Вот тут .
Групповые (aggregate) функции создаются только как UDF.
...
Рейтинг: 0 / 0
19.11.2014, 11:46:05
    #38810523
andrei90g
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
читал)
но мне бы реальный пример)
...
Рейтинг: 0 / 0
19.11.2014, 12:26:46
    #38810606
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
andrei90g Допустим как работает встроенная функция SUM(h) – перебирает все строки – и суммирует...–

прошу написать функцию SUM –

открыть курсор и извлекая по одному значению из записи суммировать.
Вроде как сумма элементов массива.
...
Рейтинг: 0 / 0
19.11.2014, 12:42:27
    #38810635
andrei90g
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
tchingizandrei90g Допустим как работает встроенная функция SUM(h) – перебирает все строки – и суммирует...–

прошу написать функцию SUM –

открыть курсор и извлекая по одному значению из записи суммировать.
Вроде как сумма элементов массива.

я смотрел и в строну курсора.. Но не смог.. Очень прошу показать на примере...
...
Рейтинг: 0 / 0
19.11.2014, 13:10:50
    #38810681
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
andrei90gмне бы реальный пример
Если недостаточно того, что описывается в разделе 24.3.2, то никакие примеры тебе не помогут.
...
Рейтинг: 0 / 0
19.11.2014, 13:50:04
    #38810742
andrei90g
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
и всё же надеюсь на чью ту помощь с примером...
...
Рейтинг: 0 / 0
19.11.2014, 20:39:50
    #38811213
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
andrei90gtchingizпропущено...


открыть курсор и извлекая по одному значению из записи суммировать.
Вроде как сумма элементов массива.

я смотрел и в строну курсора.. Но не смог.. Очень прошу показать на примере...
а сумму элементов целого массива ты можешь найти?

Модератор: Тема перенесена из форума "Вопрос-Ответ".
...
Рейтинг: 0 / 0
19.11.2014, 22:47:30
    #38811292
andrei90g
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
tchingizandrei90gпропущено...


я смотрел и в строну курсора.. Но не смог.. Очень прошу показать на примере...
а сумму элементов целого массива ты можешь найти?

Модератор: Тема перенесена из форума "Вопрос-Ответ".
смотря на каком языке программирования.... НУ что так тяжело помочь кому то с примером, чтобы не строить догадки?!
Умоляю) Помогите примером. Я просто всегда из реальных примеров сразу соображаю что надо... Мне надо RSI вообще более сложную функцию написать... Но прошу пример SUM - т.к. поняв это на примере - дальше проще мне.
...
Рейтинг: 0 / 0
20.11.2014, 10:19:42
    #38811507
andrei90g
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
помогите кто - то .... Прошу!
...
Рейтинг: 0 / 0
20.11.2014, 10:38:12
    #38811537
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
andrei90gпомогите кто - то .... Прошу!Я, например, толком не понял, с чем именно нужно помочь?

Могу, например, предложить такой вариант:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE FUNCTION sumdemo() RETURNS INT
BEGIN
  DECLARE done INT DEFAULT FALSE;
  DECLARE a,s INT;
  DECLARE cur1 CURSOR FOR SELECT data FROM test.t1;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

  OPEN cur1;
  SET s=0;

  read_loop: LOOP
    FETCH cur1 INTO a;
    IF done THEN
      LEAVE read_loop;
    END IF;
    SET s=s+a;
  END LOOP;

  CLOSE cur1;
  RETURN s;
END;

(как идея, синтаксис не проверял)

Но я сомневаюсь, что это то, что вам нужно.
...
Рейтинг: 0 / 0
20.11.2014, 10:47:29
    #38811544
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
miksoft , по-моему, ему нужна функция, которую он может использовать по типу
Код: sql
1.
2.
3.
select fld1, MyFunction(fld2)
from test
group by fld1


И пока он не въехал, что такие функции пишут на Си или около того, и потом с треском заталкивают в сервер...
...
Рейтинг: 0 / 0
20.11.2014, 23:04:42
    #38812548
andrei90g
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
Akina miksoft , по-моему, ему нужна функция, которую он может использовать по типу
Код: sql
1.
2.
3.
select fld1, MyFunction(fld2)
from test
group by fld1


И пока он не въехал, что такие функции пишут на Си или около того, и потом с треском заталкивают в сервер...

Именно! Такое мне нужно! Очень сильно прошу показать пример именно sum(X) к примеру.
...
Рейтинг: 0 / 0
20.11.2014, 23:06:40
    #38812549
andrei90g
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
miksoftandrei90gпомогите кто - то .... Прошу!Я, например, толком не понял, с чем именно нужно помочь?

Могу, например, предложить такой вариант:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE FUNCTION sumdemo() RETURNS INT
BEGIN
  DECLARE done INT DEFAULT FALSE;
  DECLARE a,s INT;
  DECLARE cur1 CURSOR FOR SELECT data FROM test.t1;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

  OPEN cur1;
  SET s=0;

  read_loop: LOOP
    FETCH cur1 INTO a;
    IF done THEN
      LEAVE read_loop;
    END IF;
    SET s=s+a;
  END LOOP;

  CLOSE cur1;
  RETURN s;
END;

(как идея, синтаксис не проверял)

Но я сомневаюсь, что это то, что вам нужно.

Ну мне нужно функцию типа SUM(X) - где X - это значения определённого столбца. Ну как работает обычная стандартная SUM(X) в mysql...
...
Рейтинг: 0 / 0
20.11.2014, 23:25:45
    #38812565
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
andrei90gОчень сильно прошу показать пример именно sum(X) к примеру.В поиске уже были?
Первая же ссылка .
Эта же страница в современной документации - UDF Calling Sequences for Aggregate Functions (и далее по ссылкам).
...
Рейтинг: 0 / 0
21.11.2014, 09:01:29
    #38812696
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
miksoft , ссылку на документацю я уже давал... но ёж - птица гордая, и без примера не полетит.
...
Рейтинг: 0 / 0
21.11.2014, 20:22:30
    #38813708
andrei90g
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
Akina miksoft , ссылку на документацю я уже давал... но ёж - птица гордая, и без примера не полетит.

ну блин вы жадные) пример тяжело на sum(x) показать?(
...
Рейтинг: 0 / 0
21.11.2014, 21:14:13
    #38813726
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и написание функций - по простому примеру
andrei90gну блин вы жадные) пример тяжело на sum(x) показать?(Мы не жадные, просто мы таким не занимаемся. Самописные внешние функции - это экзотика в той сфере, где обычно применяется MySQL.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL и написание функций - по простому примеру / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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