Mysql проверка. запись за один день против записи в другую дату «Продажи в одном магазине»

0

Концепция продаж с одним и тем же магазином, если вы проверите, как вчера работает магазин в том же магазине, чтобы показать, растут или уменьшаются доходы. поэтому у меня есть таблица с 5+ millions записей, структурированных как

store_id , stats_date, trans_cnt (number of transactions), 
revenue, time_period(week, day , year)

есть ли способ избежать использования cursor, чтобы проверить, существует ли запись store_id вчера и сегодня, и посмотреть, store_id ли доход вверх или вниз?

  • 0
    Образцы данных и желаемые результаты всегда помогают.
Теги:
apache-spark-sql

1 ответ

1
Лучший ответ

Это может быть достигнуто для объединения с данными одного фильтра из таблицы или подкатегории.

т.е.

 select tdate.store_id  ,(tdate.revenue - ydate.revenue) as diffrence 
 from (select store_id ,revenue from tablename where stats_date =getdata()) tdate 
   join ( select store_id ,revenue from tablename  where stats_date = DATEADD(day, -1,getdata()) )  as ydate
  on tdate.store_id = ydate.store_id

Замечания:

данные фильтра ydate за вчерашний день

данные фильтра tdate за вчерашний день

Можно добавить дополнительное состояние фильтра.

Или вы ищете

 select tdate.store_id  ,(tdate.revenue - ydate.revenue) as diffrence 
   from  tablename tdate 
   join tablename   as ydate
    on tdate.store_id = ydate.store_id
    and tdate.stats_date =ydate.DATEADD(day, -1,stats_date)
  • 0
    да и сейчас, потому что у меня есть записи почти. 2 года в таблице и Райте. это условия будут кошмаром, есть ли способ проверить это динамически, без использования курсора
  • 0
    Здесь у нас нет курсора, и во-вторых, он динамический, так как мы вычисляем дату динамически. для производительности у нас может быть две переменные в sotre / динамическое значение на сегодня и вчера.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню