ROW_NUMBER 通过任何 ID(或任何其他类型的解决方案)
ROW_NUMBER by any ID (or any other kind of solution)
我正在尝试创建一个 select 来为变量分配行的相关编号,但通过公共 ID 字段,而不是所有搜索结果的相关编号。
订单示例 table:
order_id product_name
-----------------------
007 bicicle
007 bike
007 car
008 car
008 ship
009 airplane
009 rocket
009 bicicle
我需要什么?
我需要在第一列添加一个相关数字 order_id,因为
row_number order_id product_name
-----------------------------------
1 007 bicicle
2 007 bike
3 007 car
1 008 car
2 008 ship
1 009 airplane
2 009 rocket
3 009 bicicle
我已经创建了这个 select,但是有任何错误:
SELECT
(SELECT ROW_NUMBER() OVER (order by ORDER_ID) AS ROW_NUMBER,
ORDER_ID,
PRODUCT_NAME
FROM ORDER
我该如何解决?
你有一个额外的括号,there.This 中的 select 应该有效
SELECT ROW_NUMBER() OVER (order by ORDER_ID) AS ROW_NUMBER,
ORDER_ID,
PRODUCT_NAME
FROM ORDER
编辑了 table 名称...您不应使用保留字作为 table 名称。但如果你必须这样做,也许可以做这样的事情
FROM [ORDER]
--创建 TABLE 命名顺序--
create table "order"
(
order_id integer,
product_name varchar2(50 char)
);
--插入语句--
insert into "order" values(007,'bicycle');
insert into "order" values(007,'bike');
insert into "order" values(007,'car');
insert into "order" values(008,'car');
insert into "order" values(008,'ship');
insert into "order" values(009,'airplane');
insert into "order" values(009,'rocket');
insert into "order" values(009,'bicycle');
--查询--
SELECT
RANK() OVER ( PARTITION BY order_id ORDER BY PRODUCT_NAME ASC ) AS "Row_Number",
ORDER_ID,
PRODUCT_NAME
FROM "order"
--结果集--
Row_Number ORDER_ID PRODUCT_NAME
1 7 bicycle
2 7 bike
3 7 car
1 8 car
2 8 ship
1 9 airplane
2 9 bicycle
3 9 rocket
我正在尝试创建一个 select 来为变量分配行的相关编号,但通过公共 ID 字段,而不是所有搜索结果的相关编号。
订单示例 table:
order_id product_name
-----------------------
007 bicicle
007 bike
007 car
008 car
008 ship
009 airplane
009 rocket
009 bicicle
我需要什么?
我需要在第一列添加一个相关数字 order_id,因为
row_number order_id product_name
-----------------------------------
1 007 bicicle
2 007 bike
3 007 car
1 008 car
2 008 ship
1 009 airplane
2 009 rocket
3 009 bicicle
我已经创建了这个 select,但是有任何错误:
SELECT
(SELECT ROW_NUMBER() OVER (order by ORDER_ID) AS ROW_NUMBER,
ORDER_ID,
PRODUCT_NAME
FROM ORDER
我该如何解决?
你有一个额外的括号,there.This 中的 select 应该有效
SELECT ROW_NUMBER() OVER (order by ORDER_ID) AS ROW_NUMBER,
ORDER_ID,
PRODUCT_NAME
FROM ORDER
编辑了 table 名称...您不应使用保留字作为 table 名称。但如果你必须这样做,也许可以做这样的事情
FROM [ORDER]
--创建 TABLE 命名顺序--
create table "order"
(
order_id integer,
product_name varchar2(50 char)
);
--插入语句--
insert into "order" values(007,'bicycle');
insert into "order" values(007,'bike');
insert into "order" values(007,'car');
insert into "order" values(008,'car');
insert into "order" values(008,'ship');
insert into "order" values(009,'airplane');
insert into "order" values(009,'rocket');
insert into "order" values(009,'bicycle');
--查询--
SELECT
RANK() OVER ( PARTITION BY order_id ORDER BY PRODUCT_NAME ASC ) AS "Row_Number",
ORDER_ID,
PRODUCT_NAME
FROM "order"
--结果集--
Row_Number ORDER_ID PRODUCT_NAME
1 7 bicycle
2 7 bike
3 7 car
1 8 car
2 8 ship
1 9 airplane
2 9 bicycle
3 9 rocket