Расчет недельных продаж с помощью DAX в LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
В этом руководстве мы обсудим временные таблицы и представления SQL . Эти два могут быть удобны, если вы хотите получить определенный набор данных из физической таблицы для тестирования и отладки. Мы также поговорим о двух типах временных таблиц и их различиях.
С временными таблицами и представлениями SQL вы можете свободно манипулировать набором данных с помощью нескольких команд, не запрашивая их повторно, поскольку они уже хранятся в отдельной таблице.
Несмотря на то, что эти два работают одинаково, вы должны принять к сведению их различия. Это поможет вам выбрать лучший метод, который вы можете использовать в конкретной ситуации.
Исходя из самого названия, временные таблицы используются для временного хранения данных в сеансе.
Мы также можем выполнять с ними несколько операций, как с физическим столом . Представьте, что у вас есть очень длинная команда SQL. Вы можете просто поместить это во временную таблицу и начать отладку или устранение ошибок, не затрагивая исходный запрос. Кроме того, временные таблицы обладают мощными возможностями и часто используются в SQL.
Оглавление
Два типа временных таблиц в SQL
В SQL есть 2 типа временных таблиц. Это локальные и глобальные временные таблицы.
Локальные временные таблицы существуют только в том сеансе, в котором они были созданы. Мы не сможем получить доступ к этой таблице в других сеансах. Из-за этого локальные временные таблицы больше не будут существовать после закрытия сеанса, в котором они были созданы.
Напротив, глобальные временные таблицы доступны во всех сеансах при создании. Но как только все сеансы будут закрыты, он больше не будет существовать и больше не будет доступен.
Обратите внимание, что вы можете просто определить, какой тип временной таблицы используется в запросе, проверив символ « # » для локальной и « ## » для глобальной временной таблицы.
Локальные временные таблицы обычно начинаются с « # » в имени таблицы.
С другой стороны, глобальные временные таблицы начинаются с « ## » перед именем таблицы.
Кроме того, если вы хотите быстро создать любую таблицу, вы можете выполнить команду: SELECT * INTO #customers FROM dbo.courses в качестве примера.
Эта команда создаст новую временную таблицу с именем #customers со всеми данными из таблицы dbo.courses .
Представления в Microsoft SQL Server Management Studio
Давайте теперь обсудим представления SQL с помощью этого примера команды.
Скажем, например, мы не хотим повторно выполнять такую команду. Вы можете просто поместить его в представление, выполнив приведенную ниже команду.
Создание представления аналогично созданию таблиц. Это позволит нам выполнить введенный нами запрос, выбрав созданное нами имя представления. В данном случае это CustomersbyYear_v .
Важно отметить, что представления отличаются от временных таблиц. Это потому, что представления видны в вашей базе данных так же, как физическая таблица, если вы не удалите ее. Кроме того, представления не хранят никаких данных или значений.
Вместо этого он просто отобразит команду, которую вы ввели сразу после команды CREATE VIEW . Вы также можете запустить любую табличную операцию в представлениях.
Самое главное, мы можем легко идентифицировать представления, поскольку они обычно представлены путем добавления «v» в начале или конце имени представления.
Создание временных таблиц и представлений в SQL
Для этого примера у меня есть этот запрос, который будет объединять и отображать записи из Sales.SalesOrderHeader и Sales.Customer C после его выполнения.
Создание локальных временных таблиц в SQL
Представьте, что вы написали запрос длиной в 200 строк, и вам нужно его отладить и выполнить определенные операции. Вы не можете напрямую редактировать запрос , так как это может вызвать больше ошибок в процессе.
В этом случае, используя предыдущий пример, мы создадим локальную временную таблицу, добавив команду INTO #test_local перед командой FROM.
Как только мы запустим эту команду, #test_local теперь будет содержать объединенные записи Sales.SalesOrderHeader и Sales.Customer C. В результате это то, что вы увидите, выбрав таблицу #test_local .
После этого мы можем выполнять любые операции над таблицей #test_local . Мы выберем все записи из #test_local , затем изменим порядок записей по CustomerID , используя следующую команду.
В результате записи теперь сортируются по их CustomerID. Но поскольку мы использовали локальную временную таблицу, мы не можем получить доступ или использовать таблицу #test_local в другом сеансе. В следующем примере показано, что произойдет, если мы попытаемся получить доступ к #test_local в SQLQuery2.sql .
Основываясь на предыдущем примере, при выборе #test_local просто отображалось сообщение об ошибке. Это связано с тем, что таблица #test_local существует только в сеансе, в котором она была создана, то есть в SQLQuery1.sql .
Создание глобальных временных таблиц в SQL
Далее мы будем использовать тот же запрос, что и в #test_local . Но на этот раз мы будем использовать глобальную .
Теперь, если мы выберем ##test_global и упорядочим записи по CustomerID, он покажет тот же вывод, что и в #test_local, поскольку мы использовали тот же запрос.
После этого мы попытаемся получить доступ к таблице ##test_global в другом сеансе, выбрав ее. Это работает без проблем, поскольку мы используем глобальную временную таблицу.
На этом этапе мы подчеркиваем разницу между локальными и глобальными временными таблицами.
Помните, что локальные временные таблицы доступны только в том сеансе, в котором они были созданы . Как только вы закроете этот сеанс, он больше не будет существовать.
С другой стороны, глобальные временные таблицы видны всем сеансам , если только вы не закроете все активные сеансы или само приложение.
Создание представлений в SQL
Теперь мы собираемся создать представление. В этом примере у нас есть существующий запрос, подобный этому.
Мы можем приступить к созданию представления, добавив в этот запрос команду CREATE VIEW .
После запуска команды в базе данных, над которой мы работаем, будет создано представление. В данном случае это AdventureWorks2012 .
Мы также должны увидеть dbo.CustomerView_v в папке Views после ее обновления. Чтобы обновить папку Views, щелкните ее правой кнопкой мыши и выберите Refresh .
Щелкните значок + справа от папки Views, и dbo.CustomerView_v станет видимым.
Вы можете открыть это представление, щелкнув правой кнопкой мыши dbo.CustomerView_v, а затем выберите «Выбрать первые 1000 строк» в параметрах. Это отобразит 1000 записей в этом представлении .
После этого мы теперь можем использовать dbo.CustomerView_v и выполнять с ним любые операции, как с таблицей. Например, мы хотим выбрать записи с SalesOrderID больше 50000 в dbo.CustomerView_v . В этом случае мы будем использовать следующую команду.
Теперь мы можем запустить операцию над созданным нами представлением.
Заключение
Подводя итог, мы узнали о двух типах временных таблиц, их различиях и том, почему нам нужно их использовать. Кроме того, мы обсудили, что временные таблицы служат способом исправления ошибок в ваших запросах без повреждения фактического запроса.
Имейте в виду, что временные таблицы видны только тем сеансам, в которых они были созданы. Следовательно, он больше не будет существовать, как только мы закроем активные сеансы или само приложение.
Мы также узнали, что представления не хранят данные или записи. Он показывает только результаты на основе запроса, который вы хотите отобразить. Эти представления сохраняются в нашей базе данных после их создания.
Изучив эти два, вы теперь сможете быстро выполнять длинные команды и с легкостью изменять большие фрагменты набора данных .
Всего наилучшего,
Хафиз
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.