72 похожих чатов

Ребята, подскажите, пожалуйста, как вынести NOW() в переменную в начале

запроса?

чтобы можно было менять эту переменную на любую другую дату 1 раз вместо 4х

запрос считает отток компаний

WITH

pay AS
(SELECT COUNT(*) AS CO1
FROM companies
WHERE (companies.next_payment_at >= DATE(DATE_ADD(NOW(), INTERVAL -30 day))) AND (companies.next_payment_at < DATE(NOW()))),

pay_0 AS
(SELECT COUNT(*) AS CO2
FROM companies
WHERE (companies.next_payment_at >= DATE(DATE_ADD(NOW(), INTERVAL -30 day)))
AND (companies.trial_end_at < DATE(DATE_ADD(NOW(), INTERVAL -30 day))))

SELECT CO1 / CO2 * 100
FROM pay_0 CROSS JOIN pay;

16 ответов

14 просмотров

Ну, WITH напишыте.

Юля-Трофимова Автор вопроса
Ilya Anfimov
Ну, WITH напишыте.

не поняла) можете пояснить, пожалуйста?

Юля Трофимова
не поняла) можете пояснить, пожалуйста?

Почитайте про CTE. Оформите select now() в CTE и замените вызовы now() на select из CTE

Roman Sergeev
Почитайте про CTE. Оформите select now() в CTE и з...

Глянул на ваш код внимательнее Для развития sql навыков советую попробовать и более идиоматичный подход. В вашем коде несколько раз используется вычитание 30 дней из now. Перенесите это выражение в то же cte второй колонкой. И вместо запросов к cte используйте join к нему. Не факт, что это будет эффективнее - надо смотреть на планы, но set based мышление разовьёт

Переменных в запросах не существует . переменные существуют в процедурах, функции , в триггерах.

В клиентском соединении хранятся все переменные. Ты можешь создать переменную и туда занести значение Now а потом его как угодно менять запятая и использовать в запросе. Всё равно собственно запрос тут ни при чём

Юля-Трофимова Автор вопроса
Ilya Zviagin
В клиентском соединении хранятся все переменные. Т...

а как создать переменную в клиентском запросе?

Ну в общем-то Илья прав, тебе просто переменные вообще не нужны ни на фиг. И ничего страшного вычисление одного выражения 4 5 20 раз нет

Cte у тебя тут уже есть, тебе надо ещё добавить одну таблицу в самом начале, точнее это будет псевдо таблица, встроенный в запрос Вью с одной строкой, где ты можешь написать параметры запроса которые тебе нужны

Но главное что здесь в таком простом запросе это наверное не имеет смысла, ты только усложнишь запрос и его читаемость, а существенно Ничего не поменяется

Юля-Трофимова Автор вопроса
Roman Sergeev
Глянул на ваш код внимательнее Для развития sql на...

now получилось вынести🥳 а INTERVAL -30 day не получилось. я хотела его второй кололнкой в cte_date as (SELECT NOW() as date_now) добавить

Юля Трофимова
screenshot now получилось вынести🥳 а INTERVAL -30 day не полу...

Как в сказке - ковер соткала? - соткала - неси - не соткала - а чего сказала, что соткала? - думала, что соткала :)

Похожие вопросы

Обсуждают сегодня

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
На чём в основном щас пишут мини апы? Vuejs?
Goot evening Not everyone
6
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
8
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
Карта сайта