Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 链接到另一列中某个值的数据列表_Mysql_Sql - Fatal编程技术网

Mysql 链接到另一列中某个值的数据列表

Mysql 链接到另一列中某个值的数据列表,mysql,sql,Mysql,Sql,CREATE TABLE operations ( id int auto_increment primary key, orderID VARCHAR(255), itemID VARCHAR(255), event_date DATE, order_volume INT, shipped_volume INT ); INSERT INTO operations (itemID, orderID, event_date, order_volum

CREATE TABLE operations (
    id int auto_increment primary key,
    orderID VARCHAR(255),
    itemID VARCHAR(255),
    event_date DATE,
    order_volume INT,
    shipped_volume INT
);

INSERT INTO operations
(itemID, orderID, event_date, order_volume, shipped_volume
)
VALUES 
("Item_01", "Order_01", "2020-01-01", "200", "0"),
("Item_01", "Order_01", "2020-01-18", "0", "50"),
("Item_01", "Order_02", "2020-02-15", "400", "0"),
("Item_01", "Order_02", "2020-02-23", "0", "120"),
("Item_01", "Order_03", "2020-02-21", "300", "0"),
("Item_01", "Order_03", "2020-02-21", "0", "180"),

("Item_02", "Order_01", "2020-02-02", "500", "0"),
("Item_02", "Order_01", "2020-02-10", "0", "175"),
("Item_02", "Order_02", "2020-02-03", "900", "0"),
("Item_02", "Order_02", "2020-03-18", "0", "620"),

("Item_03", "Order_01", "2020-08-12", "700", "0"),
("Item_03", "Order_01", "2020-08-25", "0", "280");
预期结果:

itemID       orderID       order_volume     shipped_volume          position
Item_03     Order_01           700             280                     1
Item_02     Order_02           900             620                     1
Item_02     Order_01           500             175                     2
Item_01     Order_03           300             180                     1
Item_01     Order_02           400             120                     2
Item_01     Order_01           200              50                     3 

在上表中,我有不同的
项目
,它们对应的
订单
事件日期
,订购了
订单卷
,装运了
发货卷

现在,我想得到一个所有订单的降序列表链接到一个特定项目

例如,
Item\u 01
链接到
Order\u 01
Order\u 02
Order\u 03

因此,带有
Item_01
orderIDs
应该从
Order_01
Order_03
列出
此外,特定
项目
中每个
订单ID
位置应在
位置
列中显示为数字


到目前为止,我试图执行以下查询,但它没有给出预期结果:

SELECT
itemID,
orderID,
sum(order_volume),
sum(shipped_volume),
ROW_NUMBER() OVER (PARTITION BY orderID ORDER BY event_date DESC) as position
FROM operations
GROUP BY 1,2;
要获得上面显示的结果,我需要做哪些更改?

试试这个

SELECT
itemID,
orderID,
sum(order_volume),
sum(shipped_volume),
ROW_NUMBER() OVER (PARTITION BY orderID ORDER BY itemID DESC) as position
FROM operations
GROUP BY 1,2
order by itemID desc, orderID desc;
试试这个

SELECT
itemID,
orderID,
sum(order_volume),
sum(shipped_volume),
ROW_NUMBER() OVER (PARTITION BY orderID ORDER BY itemID DESC) as position
FROM operations
GROUP BY 1,2
order by itemID desc, orderID desc;

您也可以尝试以下方法:

SELECT
itemID,
orderID,
sum(order_volume),
sum(shipped_volume) as ShippedVolume,
ROW_NUMBER() OVER (PARTITION BY orderID ORDER BY ShippedVolume DESC) as position
FROM operations
GROUP BY 1,2
ORDER BY itemID Desc, ShippedVolume Desc;

您也可以尝试以下方法:

SELECT
itemID,
orderID,
sum(order_volume),
sum(shipped_volume) as ShippedVolume,
ROW_NUMBER() OVER (PARTITION BY orderID ORDER BY ShippedVolume DESC) as position
FROM operations
GROUP BY 1,2
ORDER BY itemID Desc, ShippedVolume Desc;