Поиск разницы между двумя столбцами в первой и второй строках с помощью предложения where в Lavavel Eloquent

Поиск разницы между двумя столбцами в первой и второй строках с помощью предложения where в Lavavel Eloquent

24.12.2019 09:41:04 Просмотров 37 Источник

Я разрабатываю лотерейное приложение с использованием Laravel, и я пытаюсь запросить lottery_resultWHERE в eloquent, когда вы посмотрите на результаты ниже, вы поймете, что есть номера WHEREс разницей в 1 интервал чисел или некоторые из Eventимеет интервал 7 дней. Напр.. Событие: 2016-2017, а также событие: 2178-2179. Как я могу получить номера событий с разницей в 1 или Eventс разницей в 7 дней интервала, с возвращением результатов со Event

Event_Date

Результат ниже:

columns(w5) == 29
У вопроса есть решение - Посмотреть?

Ответы - Поиск разницы между двумя столбцами в первой и второй строках с помощью предложения where в Lavavel Eloquent / Finding Difference between two columns in first and second rows using where clause in Lavavel Eloquent

richyen

24.12.2019 09:56:22

То, что вы ищете, - это LAG(), которая есть у mysql, но Laravel не включает ее в свой API. Если вам нужна эта функциональность, вы можете сделать это на стороне приложения или использовать необработанный запрос в Laravel

Возможный пример (не уверен, какой результат вы ожидаете):

-- for events with gap 1
SELECT event,
       event_date,
       w5,
       LAG(event, 1) OVER (
        PARTITION BY event
        ORDER BY event_date
    ) prev_eventnum
FROM lottery_result
WHERE w5 = 29
AND lottery_type_id = 6
AND event_num - prev_eventnum = 1
UNION
-- for event_dates 7 days apart
SELECT event,
       event_date,
       w5,
       LAG(event_date, 1) OVER (
        PARTITION BY event_date
        ORDER BY event
    ) prev_eventdate
FROM lottery_result
WHERE w5 = 29
AND lottery_type_id = 6
AND DATEDIFF(event_date,prev_eventdate) = 7;
https://stackoverflow.com/questions/59464833/finding-difference-between-two-columns-in-first-and-second-rows-using-where-clau/59464985#comment105111197_59464985
Возможно, будет полезно привести пример использования функции LAGв данном конкретном случае. Ссылки могут умереть в будущем так что это хорошая идея иметь ответ который стоит сам по себе
https://stackoverflow.com/questions/59464833/finding-difference-between-two-columns-in-first-and-second-rows-using-where-clau/59464985#comment105114568_59464985
Хорошо, спасибо позвольте мне попробовать и дать вам обратную связь
https://stackoverflow.com/questions/59464833/finding-difference-between-two-columns-in-first-and-second-rows-using-where-clau/59464985#comment105118134_59464985
Ранее был найден псевдоним. (рядом с prev_eventnum) - это ошибка, которую я сейчас имею
https://stackoverflow.com/questions/59464833/finding-difference-between-two-columns-in-first-and-second-rows-using-where-clau/59464985#comment105121394_59464985
Была опечатка-исправил ее только сейчас
Закрыть X