На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
Страницы: (15) « Первая ... 8 9 [10] 11 12 ...  14 15 все  ( Перейти к последнему сообщению )  
> Помогите с запросом
    MIF а эту таблицу придется удалять и создавать в запросе каждый раз?
      Если строки живут долго, то лучше хранить их в постоянной таблице.
      Если они меняются в каждом запросе, то лучше создавать временныйы таблицу в запросе.
        Цитата ^D^ima @
        а эту таблицу придется удалять и создавать в запросе каждый раз?

        Ответ зависит от двух факторов. Первый - изменчивость исходных данных и соответственно данных в этой таблице. Второй - расход ресурсов на получение данных для такой таблицы. На основании этих данных следует сделать выбор либо в пользу скорости ценой точности/актуальности, либо наоборот.
        Если решите создавать каждый раз - используйте CTE (WITH Clause).
          Друзья, какая агрегатная функция не суммирует а вычитает?
            А что из чего вычитать-то?
              Есть числовой столбец, нужно его не суммировать, а отнять,сгрупировав по 2му полю
                :facepalm:

                В группе по некоему значению "второго поля" есть 4 записи со следующими значениями "числового столбца": 1,4,11,30. Каким должно быть значение, возвращаемое "функцией группового вычитания"? Как оно получено? И почему именно так?
                  Цитата ^D^ima @
                  Есть числовой столбец, нужно его не суммировать, а отнять

                  Цитата Akina @
                  :facepalm:

                  :lol:

                  Групповое вычитание = -(групповое сложение) :jokingly:
                    JoeUser
                    Не так. 2+2=4. Со знаком минус будет -4, а должно быть 0(2-2)


                    Akina
                    1-4-11-30
                    Нужно сагрегировать результат, как ари SUM, только с вычитанием каждого, а не сложением.
                    Ну или взять каждый элемент, и подставить минус. Типа Sum(- элемент) . Сами значения элементов положительные числа, нужно найти значение их разниц
                      Почему начали вычитать именно из 1, а не из, скажем, 11?
                        Суммируешь все записи кроме ... кроме той, которую ты считаешь первой. И из нее вычитаешь сумму.
                          MIF, в терминах SQL лучше суммить всё, и вычитать из удвоенного "избранного". В любом случае это таки сложение, а не вычитание.
                            Цитата ^D^ima @
                            а должно быть 0(2-2)

                            Это с какого перепугу?
                            Суммируем мы же с нуля, не??? 0+значение записи1+значение записи2+ ... значение записиN
                            А чем вычитание "лучше"???
                            Скрытый текст
                            Просто есть подозрение что ты развиваешь тему "Как с помощью SQL зОхватить мир?" 8-)


                            Добавлено
                            Цитата MIF @
                            Суммируешь все записи кроме ... кроме той, которую ты считаешь первой. И из нее вычитаешь сумму.

                            Вот! Это четко)
                              Зайду с другой стороны.
                              Коллеги, в общем ситуация такая. Есть таблица на выходе (всего по 2 цифры на первый столбец):
                              Клиент1 100
                              Клиент1 250
                              Клиент2 300
                              Клиент2 500

                              Нужно получить:
                              Клиент1 150 (по модулю 100-250 или 250-100 нет разницы)
                              Клиент2 200 (по модулю 300-500 или 500-300 нет разницы)
                                Цитата ^D^ima @
                                всего по 2 цифры на первый столбец

                                ExpandedWrap disabled
                                  MAX(field) - MIN(field) AS delta
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (15) « Первая ... 8 9 [10] 11 12 ...  14 15 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0429 ]   [ 16 queries used ]   [ Generated: 28.03.24, 23:10 GMT ]