我正在尝试SalesRank
根据 column 中的金额创建一列SalesAmount
。
我正在尝试做与此类似的事情:RANK() OVER(Order BY SalesAmount desc) as StateRank
,但我不确定在将两个表连接在一起后如何执行此操作?如何在两个表合并后创建另一列?为了做到这一点,我需要将我的联合选择插入到#temptable
?
这是我的表的示例:
状态标识 | 报告标题 | 报告 ID | 销售额 |
---|---|---|---|
1 | 加利福尼亚的在线销售 | 21 | 21512 |
12 | 纽约在线销售 | 37 | 13201 |
14 | 密歇根州的在线销售 | 91 | 9212 |
23 | 内华达州的在线销售 | 14 | 12931 |
8 | 宾夕法尼亚州的在线销售 | 14 | 23413 |
13 | 俄勒冈州的在线销售 | 14 | 9651 |
我期待有这样的回报:
状态标识 | 报告标题 | 报告 ID | 销售额 | 销售排名 |
---|---|---|---|---|
1 | 加利福尼亚的在线销售 | 21 | 21512 | 2 |
12 | 纽约在线销售 | 37 | 13201 | 3 |
14 | 密歇根州的在线销售 | 91 | 9212 | 6 |
23 | 内华达州的在线销售 | 14 | 12931 | 4 |
8 | 宾夕法尼亚州的在线销售 | 14 | 23413 | 1 |
13 | 俄勒冈州的在线销售 | 14 | 9651 | 5 |
这是我的查询:
CREATE TABLE TableOne
(
StateId INT,
ReportTitle VARCHAR(100),
ReportId INT,
SalesAmount Money,
)
INSERT INTO TableOne (StateId,ReportTitle,ReportId,SalesAmount)
VALUES (1,'Online Sales in California',21, 21512),(12,'Online Sales in New York',37,13201), (14,'Online Sales in Michigan',91,9212)
CREATE TABLE TableTwo
(
StateId INT,
ReportTitle VARCHAR(100),
ReportId INT,
SalesAmount Money,
)
INSERT INTO TableTwo (StateId,ReportTitle,ReportId,SalesAmount)
VALUES (23,'Online Sales in Nevada',14,12931), (8,'Online Sales in Pennsylvania',14,23413), (13,'Online Sales in Oregon',14,9651)
SELECT * FROM TableOne
UNION ALL
SELECT * FROM TableTwo