假设我有历史数据,其中列出了每天显示缺陷的项目。项目在此列表中进出。IE-
TABLE NAME: ITEMS_WITH_DEFECTS
DAY | ITEMID
-------------------
01-JAN-16 | A
01-JAN-16 | D
02-JAN-16 | B
02-JAN-16 | D
03-JAN-16 | A
03-JAN-16 | C
04-JAN-17 | A
04-JAN-17 | D
我想建立一个数据源,显示相对于前一天的每一天,有多少项目是新的、丢弃的和结转的。它希望这样做而不会丢失我的历史数据源中的任何信息,所以我想要的输出是:
TABLE NAME: ITEM_DEFECT_TRENDS
DAY | ITEMID | DEFECT | TREND
------------------------------------
01-JAN-16 | A | y | New
01-JAN-16 | B | n | (null)
01-JAN-16 | C | n | (null)
01-JAN-16 | D | y | New
02-JAN-16 | A | n | Dropped
02-JAN-16 | B | y | New
02-JAN-16 | C | n | (null)
02-JAN-16 | D | y | Carryover
03-JAN-16 | A | y | New
03-JAN-16 | B | n | Dropped
03-JAN-16 | C | y | New
03-JAN-16 | D | n | Dropped
04-JAN-16 | A | y | Carryover
04-JAN-16 | B | n | (null)
04-JAN-16 | C | n | Dropped
04-JAN-16 | D | y | New
我知道如何生成 TREND 列,但我不知道如何将行或 DEFECT 列添加到输出中。
这是我可以用 SQL 或 PL SQL 做的吗?
我想像这样对数据建模的原因是因为我的数据库包含大约 12,000 个可能项目的大列表,但一次只有 500 个左右的项目会出现缺陷。仅使用我必须考虑的项目与所有可能的项目相比,将其划分为内存效率更高。