如何创建具有多个自动递增值的 table?
How do I create a table with multiple auto incrementing values?
我想在我的 BigQuery 中有一个自动递增的字符串 table。 似乎是个好方法:
CREATE TABLE dbo.YourTable
(
ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
CompanyID AS '789-' + RIGHT('000000' + CAST(ID AS VARCHAR(7)), 7) PERSISTED,
.... your other columns here....
)
但是我实际上想要一个基于多个具有不同前缀的此类计数的列。
所以在示例中,一条新记录进入并获得标签 789-00056。对于我的数据,如果我有一个 a 记录,我希望标签是 a-[运行 a 的计数 + 1],对于 b:b-[运行 b 的计数 + 1]。
数据将如下所示:
record type
label
a
a-1
a
a-2
b
b-1
a
a-3
方法如下:
SELECT field1, field2 ,field3,
ROW_NUMBER() OVER (PARTITION BY field1 ORDER BY field3 ASC) AS my_label
FROM table
我想在我的 BigQuery 中有一个自动递增的字符串 table。
CREATE TABLE dbo.YourTable
(
ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
CompanyID AS '789-' + RIGHT('000000' + CAST(ID AS VARCHAR(7)), 7) PERSISTED,
.... your other columns here....
)
但是我实际上想要一个基于多个具有不同前缀的此类计数的列。
所以在示例中,一条新记录进入并获得标签 789-00056。对于我的数据,如果我有一个 a 记录,我希望标签是 a-[运行 a 的计数 + 1],对于 b:b-[运行 b 的计数 + 1]。
数据将如下所示:
record type | label |
---|---|
a | a-1 |
a | a-2 |
b | b-1 |
a | a-3 |
方法如下:
SELECT field1, field2 ,field3,
ROW_NUMBER() OVER (PARTITION BY field1 ORDER BY field3 ASC) AS my_label
FROM table