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 ответов

20 просмотров

Ну, 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 не полу...

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

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

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

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта