У меня есть таблица, как показано ниже, об информации об акциях, которая обновляется ежедневно без удаления прежних данных.
Table Name : StockInfo
---------------------------------------------
Date | ProductName | Stock |
---------------------------------------------
20, Jul | Buds | 0 |
---------------------------------------------
20, Jul | Monitor | 1 |
---------------------------------------------
19, Jul | Buds | 0 |
---------------------------------------------
18, Jul | Monitor | 0 |
---------------------------------------------
17, Jul | Buds | 1 |
---------------------------------------------
16, Jul | Monitor | 15 |
---------------------------------------------
15, Jul | Buds | 5 |
---------------------------------------------
14, Jul | Buds | 0 |
---------------------------------------------
- обратите внимание, что данные монитора 15 июля отсутствуют, потому что монитор недавно вышел в16 июля.
Используя таблицу выше, я хочу получить следующее. Предположим, что сегодня 20 июля.
--------------------------------------------------------------
| ProductName | IsSoldoutNow | SoldoutDate |
--------------------------------------------------------------
| Buds | TRUE | 19, July |
--------------------------------------------------------------
| Monitor | FALSE | NULL |
--------------------------------------------------------------
Можно ли обрезать такое значение, используя чистый SQL с хорошей производительностью? То, что я хочу знать, является ли определенный продукт распроданным или нет, и если распродано, с каких пор? Я планирую join
выше таблицы с другой таблицей, как показано ниже, и создам Excel-подобную таблицу в Интернете с помощью Node. И запросы должны быть быстрыми из-за рендеринга с помощью прокрутки вниз, вверх.
--------------------------------------------------------
| ProductName | Price | IsSoldoutNow | SoldoutDate |
--------------------------------------------------------
Я решил обработать это в Javascript, но это даст эффект кровати на производительности, и я должен отказаться от группировки на стороне DB исортировка.
Как я могу получить такие данные?