gpt4 book ai didi

sql - 在sql中选择每个组的第一行

转载 作者:行者123 更新时间:2023-12-03 15:16:15 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Fetch the row which has the Max value for a column

(35 个回答)


7年前关闭。




我有两张 table 。

1-> SM_Employee

 (1) employeeid   
(2) roleid
(3) storeid


2-> SM_SalesRepWorkflow

 (1) workflowid
(2) Salesrepid foreign key to employeeid
(3) QuantityAssigned
(4) QuantityLeft
(5) month
(6) year


通过这些表,我需要从 SM_SalesRepWorkflow 订单中选择每个 SalesRep 详细信息的第一行,按 SalesRepId 为 CurrentMonth 和 CurrentYear。

例子

Workflowid SalesRepId QuantityAssigned QuantityLeft Month Year

WF_101 : EMP_101 : 100 : 90 : May : 2013
WF_101 : EMP_102 : 100 : 100 : May : 2013
WF_101 : EMP_103 : 100 : 80 : May : 2013
WF_102 : EMP_101 : 100 : 70 : May : 2013



所以我想要的结果是

WF_101 : EMP_101 : 100 : 90 : May : 2013
WF_101 : EMP_102 : 100 : 100 : May : 2013
WF_101 : EMP_103 : 100 : 80 : May : 2013



所以一个销售代表可以有很多工作流程。
但我想要当前月份和年份的每个 SalesRep 的第一个。

最佳答案

您可以使用 ROW_NUMBER()像这样的功能:

SELECT *
FROM(SELECT workflowid, salesRepId, quantityAssigned,
quantityLeft, month, year
, ROW_NUMBER()
OVER (PARTITION BY salesRepId
ORDER BY workflowid) AS rownumber
FROM sm_salesRepWorkflow)
WHERE rownumber = 1;

Fiddle Demo

关于sql - 在sql中选择每个组的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16529701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com