如何在 SQL 中的物化视图左侧添加序列?

问题描述

我有一个物化视图如下:

|product_type|
--------------
shoes
clothing
electronics
..100's more

我想以每个产品类型都有相应 ID 的方式创建视图。所以视图应该如下所示:

| ID | product_type|
--------------------
1   | shoes
2   | clothing
3   | electronics
100 | ..100's more

用于创建视图的 sql 是:

select distinct(product_type) from items

解决方法

您可以使用 row_number()

select row_number() over (order by product_type) as my_id

但是,如果您需要每个 product_type 的唯一编号——并且随着时间的推移保持稳定——我建议在“产品类型”表中使用 identity 列。

对于您的特定示例,我建议:

select row_number() over (order by product_type),product_type
from items
group by product_type;
,

我认为您需要不同的 product_type,然后您需要序列号。

使用以下查询:

Select product_type,row_number() over (order by product_type) row_num
  From (Select distinct product_type
          From items) t